动画闪烁一种颜色并恢复到原来的颜色

Animation to flash a colour and come back to its original one

我正在使用 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的内容改变时改变背景颜色,然后快速恢复到原来的颜色。我想创建一个视觉效果来注意哪个标签更改了它的内容。

如何将颜色更改为黄色,然后再将其更改为白色?

将另一个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>