在动画应用之前,如何立即将故事板从新值动画回原始值?

时间:2012-05-17 06:22:38

标签: wpf animation storyboard

简而言之,我知道如何将当前值动画化为新值,但我不知道如何做(并且找不到)是如何动画回到动画运行前的值。

换句话说,我现在的背景是黄色的。我希望根据某些逻辑将背景闪烁为红色,但我希望它再次从红色渐变为黄色。透明在这里不起作用,因为它用'透明'替换背景值,而不是淡化它。

另外,我没有提到FillBehavior属性,你可以用它在运行后“取消应用”动画值,也不是指自动反转动画,因为这意味着它必须运行前进首先意味着我们会褪色到红色,而不是我们想要的瞬间脉冲。

到目前为止,我发现的唯一方法是在代码隐藏中执行此操作,但这会在逻辑上安排事情时引入自己的问题。我只想将'To'值设置为预先设置的动画值。怎么办?

1 个答案:

答案 0 :(得分:1)

仅在此示例中使用ColorAnimation.From Property

<StackPanel>
    <StackPanel.Resources>
        <Style TargetType="TextBox">
            <Style.Triggers>
                <EventTrigger RoutedEvent="MouseEnter">
                    <BeginStoryboard>
                        <BeginStoryboard.Storyboard>
                            <Storyboard>
                                <ColorAnimation Storyboard.TargetProperty="Background.Color"
                                                From="Red" Duration="0:0:1" />
                            </Storyboard>
                        </BeginStoryboard.Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Style.Triggers>
        </Style>
    </StackPanel.Resources>
    <TextBox Text="AAA" Background="Yellow" />
    <TextBox Text="BBB" Background="Blue" />
</StackPanel>