我正在使用C#和.NET Framework 4.7开发WPF应用程序。
我有这个动画:
<Style.Triggers>
<EventTrigger RoutedEvent="ContentChanged">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Duration="0:0:0.1" Storyboard.TargetProperty="(Label.Background).(SolidColorBrush.Color)"
To="Yellow" AutoReverse="True" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
我试图将背景色更改为黄色,然后再次变回白色,但我认为AutoReverse
并不意味着那样。
我也尝试过:
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(Label.Background).(SolidColorBrush.Color)"
To="Yellow" FillBehavior="Stop" BeginTime="0:0:0" Duration="0:0:0.3"/>
<ColorAnimation Storyboard.TargetProperty="(Label.Background).(SolidColorBrush.Color)"
From="Yellow" To="White"
BeginTime="0:0:0.3" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
但是最后,背景颜色是黄色。
我要实现的效果是在Label的内容更改时更改背景颜色,然后快速恢复其原始颜色。我想创建一种视觉效果,以注意到哪个标签更改了其内容。
如何将颜色更改为黄色,然后再次将其更改为白色?
答案 0 :(得分:0)
向ColorAnimation
添加另一个Storyboard
并将其BeginTime
属性设置为大于或等于第一个Duration
的值,例如:
<EventTrigger RoutedEvent="ContentChanged">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation BeginTime="0:0:0" Duration="0:0:1"
Storyboard.TargetProperty="(Label.Background).(SolidColorBrush.Color)"
To="Yellow"/>
<ColorAnimation BeginTime="0:0:1" Duration="0:0:1"
Storyboard.TargetProperty="(Label.Background).(SolidColorBrush.Color)"
To="White"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>