我希望将时间延迟附加到我表单上的 WPF 扩展器上的鼠标悬停事件(后面的 VB.NET 代码支持 xaml)。这个鼠标悬停事件本质上会触发扩展而不是单击 - 但我希望在内容扩展之前稍等片刻。到目前为止,我还没有找到任何可以通过更广泛的互联网解决这个问题的方法。
当前启用触发器的 xaml 代码是:
<Style x:Key="HoverExpander" TargetType="{x:Type Expander}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="IsExpanded" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
此样式随后应用于:
<Expander Style="{StaticResource HoverExpander}"
HorizontalAlignment="Right"
ExpandDirection="Left"
Height="Auto"
Width="Auto">
<!-- Content here -->
</Expander>
请注意,为了便于阅读,我已经去除了其他美学元素(例如边框、gridrefs 等)。
我认为应该有某种方法可以在 MouseOver 触发器上设置延迟,但没能找到它。这可以在 xaml 中设置,也可以作为代码隐藏中的事件。
我目前正在处理此问题,所以当我找到解决方案时,我会在此处发布。同时感谢任何想法。谢谢!
最佳答案
改为在 MouseOver 事件上使用 EventTrigger,并使用带有 BooleanAnimationUsingKeyFrames 的 Storyboard。在 Storyboard 的时间轴中,您可以有关键帧,以便动画在影响您要更改的属性之前等待一段时间。
关于wpf - 触发时间延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12638179/