【问题标题】:Animation to flash a colour and come back to its original one闪烁颜色并恢复其原始颜色的动画
【发布时间】:2018-12-21 20:53:30
【问题描述】:

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

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

【问题讨论】:

标签: c# wpf animation storyboard


【解决方案1】:

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

【讨论】:

  • 也许我在您回答时编辑了问题。对不起。
  • @VansFannel:我不确定我是否遵循。我的示例首先将背景设置为黄色,然后再设置为白色。这不是你想要的吗?
  • 是的,但它仍然是黄色的。我有 81 个标签,它们都使用相同的样式。一开始,所有这 81 个标签都变化得非常快,但后来,只有少数几个发生了变化。但是,那些不变的仍然是黄色的。
  • @VansFannel:对我来说效果很好。根据您提供的信息,您的问题无法重现。如果没有reproducible sample,您的最后评论就没有多大意义。
  • 是的,我无法上传我的解决方案让您看看会发生什么。对不起。
猜你喜欢
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 2012-06-23
  • 2011-06-24
  • 2010-12-27
相关资源
最近更新 更多