【发布时间】:2014-02-08 00:01:56
【问题描述】:
<DataTemplate>
<StackPanel Name="stack" Background="PaleTurquoise">
<Grid>
<Slider Name="sld" Value="{Binding TimeLeft}" />
</Grid>
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding ElementName=sld, Path=Value}" Value="0">
<DataTrigger.EnterActions>
<BeginStoryboard Name="flash">
<Storyboard TargetName="stack" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)">
<ColorAnimation From="MediumSpringGreen" To="Crimson" Duration="0:0:0.1" AutoReverse="True" RepeatBehavior="0:0:5"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="flash"/>
</DataTrigger.ExitActions>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
这是我的警报应用程序中 xaml 的精简版。当滑块的值达到 0 时,会触发 ColorAnimation,它会为包含 Slider 的 StackPanel 的背景设置动画。
但是,当闪烁结束时,我希望背景颜色恢复到以前的值(PaleTurquoise)。如何在 xaml 中完成此操作?
还有一个问题,即使我的 ViewModel 中的 TimeLeft 在初始化时为 0,如何才能让 DataTrigger 在首次加载应用程序时不触发?
【问题讨论】:
标签: wpf xaml animation storyboard datatrigger