2009-11-04 38 views
1

我有一个WPF数据模板,其中包含一些启动动画视觉颜色的DataTriggers。我该如何从color属性当前拥有的实际值开始动画?以当前值开始动画(切换)。

因为有可能是另一个动画当前活动我无法启动一个新的,但是当我删除使用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> 
+0

我真的很感兴趣的解决方案。你有没有发现如何解决这个问题? – Wouter 2010-12-03 09:59:42

回答

1

即使将FillBehavior设置为“停止”,它也应该可以正常工作:

请在msdn上检查以下部分:FillBehavior="Stop" and HandoffBehavior with Multiple Animations

+1

谢谢!试图为椭圆旋转设置动画效果,并在触发器退出时将它“捕捉”回角度0。答案是暂停以前的故事板,只是旋转一个没有'From'属性的新故事板! – Clint 2014-05-05 17:55:15