如何在XAML中完成Storyboard ColorAnimation后设置背景?

时间:2014-03-18 18:20:56

标签: wpf xaml

如何在XAML中完成故事板ColorAnimation后设置背景?

我的ColorAnimation运行使背景闪烁红色,但在它返回原始背景颜色(白色)后,我希望它提醒红色,但我看不到如何做到这一点。

我的xaml在下面 - 谢谢

            <Grid Name="cell" Background="White">
                <Grid.Style>
                    <Style>
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding DataItem.ControlValue, Converter={StaticResource IsNotNullOrEmptyConverter}}" Value="True">
                                <DataTrigger.EnterActions>
                                    <BeginStoryboard>
                                        <Storyboard x:Name="Blink" >
                                            <ColorAnimation Storyboard.TargetProperty="Background.Color" To="Red" 
                                                            RepeatBehavior="3x" Duration="0:0:1" AutoReverse="True"/>                                                    
                                        </Storyboard>
                                    </BeginStoryboard>   
                                </DataTrigger.EnterActions>
                                <DataTrigger.ExitActions>
                                    <RemoveStoryboard BeginStoryboardName="Blink" />
                                </DataTrigger.ExitActions>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Grid.Style>    

1 个答案:

答案 0 :(得分:1)

如果您不想让ColorAnimation恢复原始值,即怀孕,请将AutoReverse设置为False

<ColorAnimation Storyboard.TargetProperty="Background.Color" To="Red" 
                RepeatBehavior="3x" Duration="0:0:1" AutoReverse="False"/> 

<强>更新

在故事板中添加另一个ColorAnimation,它将在您的第一个ColorAnimation完成后开始,可能是在4秒间隔后开始的。

<BeginStoryboard>
   <Storyboard x:Name="Blink">
     <ColorAnimation Storyboard.TargetProperty="Background.Color" To="Red" 
                     RepeatBehavior="3x" Duration="0:0:1" AutoReverse="True"/>
     <ColorAnimation Storyboard.TargetProperty="Background.Color" To="Red" 
                     Duration="0:0:1" BeginTime="0:0:4"/>
   </Storyboard>
</BeginStoryboard>