我想知道是否有一种方法可以在MouseHover上设置触发器,而不是MouseOver。
我希望当用户将鼠标停留在指定区域上X秒时发生操作,而不是当他们只是MouseOver它在传递。
发布于 2011-01-20 05:42:06
要使IsMouseOver触发器在X秒后开始,您应该能够使用Storybard并设置BeginTime属性。这里有一个Button的例子,当鼠标悬停2秒时,它的大小增加了50%。
要跳过动画部分,可以为DoubleAnimation设置Duration="0"
<Button Content="Button"
Height="23"
Width="75"
RenderTransformOrigin="0.5 0.5">
<Button.RenderTransform>
<ScaleTransform />
</Button.RenderTransform>
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard BeginTime="00:00:02">
<DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(ScaleTransform.ScaleX)" To="1.5"/>
<DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(ScaleTransform.ScaleY)" To="1.5"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(ScaleTransform.ScaleX)" To="1.0"/>
<DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(ScaleTransform.ScaleY)" To="1.0"/>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>https://stackoverflow.com/questions/4738819
复制相似问题