嗨,我的WPF项目有一个奇怪的问题。
我试图在UI上设置一些元素的样式,我还想实现一些动画,比如单击动画或悬停动画。
除了MouseLeftButtonDown
动画之外,在创建这些动画时没有任何问题。
在我的风格中,我实现了这样的动画(这个Style
是用于Label
的):
<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
的Label
就会更改为#6A6A6A。
事实上,它可以实现我所期望的效果,但动画不会立即执行,而是在我按下鼠标左键后大约1秒(lmb按下->,等待1秒->颜色变化)。
我真的不知道为什么会这样。所有其他动画工作良好,并立即执行,因为他们应该,除了这一个。
我试图通过代码隐藏中的一个事件更改Label
的颜色,因为我认为我的XAML代码可能有错误,但是结果是相同的延迟动画。
我能对预期的结果做些什么?
发布于 2014-03-24 15:38:55
正如您可以从这个非常简单的工作示例中看到的,是代码中的某些内容导致了您的问题:
<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溢出帮助中心的How to create a Minimal, Complete, and Verifiable example页面中给出的好建议,以提供一个完整但简洁的代码示例,该示例仍然显示您的问题。
当遵循这一简化建议时,10次中有9次我们总是能够找到解决问题的方法。
https://stackoverflow.com/questions/22611906
复制相似问题