Wpf 鼠标上方的扳机?
我想知道是否有办法在Wpf 鼠标上方的扳机?,wpf,xaml,triggers,mousehover,Wpf,Xaml,Triggers,Mousehover,我想知道是否有办法在MouseHover上设置触发器,而不是MouseHover 我希望在用户将鼠标停留在指定区域上X秒时发生操作,而不是在鼠标经过该区域时发生操作。要使IsMouseOver触发器在X秒后开始,您应该能够使用Storybard并设置BeginTime属性。下面是一个按钮的示例,当鼠标悬停2秒时,按钮的大小会增加50%。 要跳过动画部分,可以为双动画设置Duration=“0” <Button Content="Button" Height="23"
MouseHover
上设置触发器,而不是MouseHover
我希望在用户将鼠标停留在指定区域上X秒时发生操作,而不是在鼠标经过该区域时发生操作。要使
IsMouseOver
触发器在X秒后开始,您应该能够使用Storybard并设置BeginTime
属性。下面是一个按钮的示例,当鼠标悬停2秒时,按钮的大小会增加50%。
要跳过动画部分,可以为双动画设置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>
像工具提示这样简单的东西(时间是可配置的),或者你真的需要做一些需要实际操作和/或触发的事情吗?@Wonko:我想在鼠标悬停在控件上X秒时放大控件。我希望其余控件根据调整大小的控件的大小调整大小,因此我不能只将调整大小的控件放在工具提示中。我可能会对工具提示做一些粗俗的操作,但我没有想到。谢谢你,这为我指明了正确的方向。由于我希望其他控件根据该对象的大小进行调整,因此我最终设置了对象上的高度而不是比例的动画。事实上,我现在已经把整个东西都放在附件中了,所以我很高兴:)你也可以用动画(Control.LayoutTransform)。(ScaleTransform.ScaleY)代替RenderTransform来达到类似的效果