嗨,我的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>
我的期望是,只要按下鼠标左键,Foreground
的{{1}}就会更改为#6A6A6A。
事实上它完成了我的预期,但是动画没有立即执行,但是在我按下鼠标左键(按下lmb - &gt;等待1秒 - &gt;颜色变化)后大约1秒钟。
我真的不知道为什么会这样。所有其他动画都可以正常工作,并且除了这个动画之外应该立即执行
我尝试通过代码隐藏中的事件更改Label
的颜色,因为我认为我的XAML代码可能有错误,但结果是相同的延迟动画。
我能对所需的结果做些什么?
答案 0 :(得分:1)
从这个非常简单的工作示例中可以看出,你的代码中存在导致问题的原因:
<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>
没有人能告诉你你的问题是什么,因为你还没有显示相关的代码......请不要将这句话用来表示将所有代码添加到你的问题中 ......那是不意味着什么。如果您需要有关此问题的进一步帮助,请仔细按照Stack Overflow帮助中心的How to create a Minimal, Complete, and Verifiable example页面中提供的好建议提供完整但简洁的工作代码示例,该示例仍然可以解决您的问题
在遵循这种简化建议时,我们经常可以找到解决问题的方法,无论如何都可以找到解决方案。