当点击控件时,MouseLeftButtonDown动画很晚才激活
本文关键字:动画 激活 MouseLeftButtonDown 控件 | 更新日期: 2023-09-27 17:52:35
你好,我的WPF项目有一个奇怪的问题。
我试图样式一些元素在我的UI,我也想实现动画,如点击动画或悬停动画。
除了MouseLeftButtonDown
动画,其他动画的制作都没有问题。
在我的风格中,我实现了这样的动画(这个Style
是为Label
s):
<EventTrigger RoutedEvent="MouseLeftButtonDown">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard TargetProperty="(Foreground).(SolidColorBrush.Color)">
<ColorAnimation To="#6A6A6A" Duration="0:0:0.04" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
我的期望是,Label
的Foreground
改变为#6A6A6A每当我按下鼠标左键。
事实上,它做了我所期望的,但动画并没有立即执行,而是在我按下鼠标左键1秒后执行(鼠标按下->等待1秒->颜色变化)。
我真的不知道为什么会这样。所有其他动画工作良好,并立即执行,因为他们应该除了这个。
我试图通过代码背后的事件改变Label
的颜色,因为我认为我的XAML代码可能有错误,但结果是相同的延迟动画。
我该怎么做才能得到想要的结果?
从这个非常简单的工作示例中可以看出,是您的代码中的某些内容导致了您的问题:
<TextBlock Text="Oh I don't know... just some text">
<TextBlock.Style>
<Style>
<Setter Property="TextBlock.Foreground" Value="Green" />
</Style>
</TextBlock.Style>
<TextBlock.Triggers>
<EventTrigger RoutedEvent="MouseLeftButtonDown">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard TargetProperty="(Foreground).(SolidColorBrush.Color)">
<ColorAnimation To="Red" Duration="0:0:0.5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</TextBlock.Triggers>
</TextBlock>
没有人能告诉你你的问题是什么,因为你没有展示相关的代码…请不要认为这句话的意思是把你所有的代码添加到你的问题…这是而不是的意思。如果您需要进一步的帮助来解决这个问题,那么请仔细遵循堆栈溢出帮助中心的"如何创建最小、完整和可验证的示例"页面中给出的建议,以提供一个完整,但简洁,可工作的代码示例,仍然显示您的问题。
当遵循这个简化建议时,十有八九我们都能找到问题的解决方案。