我有一个WPF Datatemplate包含一些 DataTriggers ,可以开始为视觉颜色设置动画。如何从color属性当前具有的实际值开始创建动画?
由于可能有另一个动画当前处于活动状态,我无法启动新动画但是当我使用 DataTriggers ExitAction和RemoveStoryboard删除动画时,position属性将设置回其默认值。
相反,我想把一个交给另一个。
这是WPF的限制,根本无法完成吗?
<DataTrigger Binding="{Binding Path=State}" Value="Active">
<DataTrigger.EnterActions>
<BeginStoryboard x:Name="activeStoryboard" HandoffBehavior="SnapshotAndReplace">
<Storyboard>
<ColorAnimation To="Green" FillBehavior="HoldEnd" Duration="00:00:0.25"
Storyboard.TargetName="stateBrush"
Storyboard.TargetProperty="Color" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="activeStoryboard" />
</DataTrigger.ExitActions>
</DataTrigger>
<DataTrigger Binding="{Binding Path=State}" Value="Error">
<DataTrigger.EnterActions>
<BeginStoryboard x:Name="errorStoryboard" HandoffBehavior="SnapshotAndReplace">
<Storyboard>
<ColorAnimation To="Red" FillBehavior="HoldEnd" Duration="00:00:0.25"
Storyboard.TargetName="stateBrush"
Storyboard.TargetProperty="Color" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="errorStoryboard" />
</DataTrigger.ExitActions>
</DataTrigger>
答案 0 :(得分:1)
如果你开始第二个动画,它应该可以工作,即使FillBehavior设置为Stop!
检查以下msdn:FillBehavior="Stop" and HandoffBehavior with Multiple Animations
部分