1

简而言之,我知道如何当前值动画到新值,但我不知道该怎么做(也找不到)是如何动画回动画运行之前的值。

换句话说,假设我当前的背景是黄色的。我想根据某种逻辑将背景闪烁为红色,但我希望它再次从红色变回黄色。透明在这里不起作用,因为它用“透明”替换背景值,而不是淡入淡出。

另外,我不是指 FillBehavior 属性,您可以在它运行后使用它来“取消应用”动画值,也不是指自动反转动画,因为这意味着它必须向前运行我们会逐渐变红,而不是我们想要的瞬间脉冲。

到目前为止,我发现的唯一方法是在代码隐藏中执行此操作,但这会在逻辑安排方面引入其自身的问题。我只想将“To”值设置为动画前的值。怎么可能呢?

4

1 回答 1

1

仅在此示例中使用ColorAnimation.From 属性:

<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>
于 2012-05-17T12:04:29.320 回答