如果新值超过之前的值,则XAML TextBlock为BackGround设置动画

时间:2016-11-29 14:21:25

标签: c# wpf xaml animation binding

TextBox绑定到ViewModel中int类型的属性。它的价值不断变化并通知View。我想为Background制作动画。如果新值超过先前值,请将Background设置为绿色1秒,否则设置为红色。

我该怎么做?

更新 这是目前最接近的事情。但是,无论新值是否超过前一个值,颜色总是相同的。

<Style x:Key="SuperStyle" TargetType="{x:Type TextBlock}">
    <Style.Triggers>
        <EventTrigger RoutedEvent="Binding.TargetUpdated">
            <BeginStoryboard>
                <Storyboard Storyboard.TargetProperty="(TextBlock.Background).(SolidColorBrush.Color)">
                    <Storyboard>
                        <ColorAnimation From="Transparent" To="LightGreen" Duration="0:0:1" />
                        <ColorAnimation From="LightGreen" To="Transparent" Duration="0:0:2" />
                    </Storyboard>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Style.Triggers>
</Style>

1 个答案:

答案 0 :(得分:1)

您可以使用转换器,将文本框背景绑定到您的值并将其传递给将颜色画笔返回到您的文本框的Conceer

见链接

WPF converter to update in real time background colour of textbox on text change