【发布时间】:2010-12-13 01:48:54
【问题描述】:
我有一个 WPF 数据模板,其中包含一些 DataTriggers,它们开始为视觉对象的颜色设置动画。如何从颜色属性当前具有的实际值开始动画?
由于当前可能有另一个动画处于活动状态,我无法开始新的动画,但是当我使用 DataTriggers ExitAction 和 RemoveStoryboard 删除动画时,位置属性将设置回其默认值。
相反,我想将一个移交给另一个。
这是 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>
【问题讨论】:
-
我对这个问题的解决方案非常感兴趣。您找到解决方法了吗?
标签: wpf animation storyboard datatrigger