我想知道是否有办法设置触发器MouseHover
,而不是MouseOver
。
我希望当用户将鼠标悬停在指定区域上 X 秒时发生动作,而不是当他们只是将鼠标悬停在它上面时。
我想知道是否有办法设置触发器MouseHover
,而不是MouseOver
。
我希望当用户将鼠标悬停在指定区域上 X 秒时发生动作,而不是当他们只是将鼠标悬停在它上面时。
要使IsMouseOver
触发器在 X 秒后开始,您应该能够使用 Storybard 并设置BeginTime
属性。这是一个示例,Button
当鼠标悬停 2 秒时,它的大小增加了 50%。
要跳过动画部分,您可以Duration="0"
为DoubleAnimation
s设置
<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>