wpf - 触发时间延迟

标签 wpf vb.net xaml mouseover expander

我希望将时间延迟附加到我表单上的 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/

相关文章:

c# - ObjectDataProvider 可以与派生类一起使用吗?

wpf - 如何绑定(bind) RibbonComboBox 数据?

c# - 绑定(bind) - 回调被调用两次

.net - GroupBy 来自日期时间变量的日期

c# - ImageBrush 问题 Windows Phone 8.1

c# - 如何以编程方式更改 wpf c# 中 ContentControl 内部的 UserControl

VB.Net XmlDocument.SelectNodes(xPath) : unable to query WSDL

asp.net - 在没有 AutoPostBack 的情况下根据两个文本框值计算标签中的百分比

xaml - 从 ViewModel 中选择 ItemTemplate

c# - 将转换器应用于 Blend 中的数字时,设计 View 在 TextBlock 中显示 `System.Object`