2012-03-22 117 views
3

如果我有一个在xaml资源中定义的故事板动画,我该如何禁用它?在XAML中禁用动画?

举例来说,如果我有一个UserControl.Resources部分是这样的:

<Storyboard x:Key="MyKey"> 
     <DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:.5" DecelerationRatio="1" /> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility"> 
      <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Visible}" /> 
     </ObjectAnimationUsingKeyFrames> 
    </Storyboard> 

有没有办法来禁用XAML动画..?

回答

1

一个XAML的方式在这里描述:http://msdn.microsoft.com/en-us/library/ms741997.aspx

后面的代码: 您可以使用FindResource拿到故事板,将它转换为情节串连图板,并呼吁停止。

编辑:查看http://www.galasoft.ch/mydotnet/articles/article-2006102701.aspx深入了解故事板和背后的代码。

编辑:使用触发器中的属性:

<MultiTrigger> 
    <MultiTrigger.Conditions> 
     <Condition Property="IsActive" Value="True"/> 
    </MultiTrigger.Conditions> 
    <MultiTrigger.EnterActions> 
     <BeginStoryboard Storyboard="{StaticResource StoryBoard1}"/> 
    </MultiTrigger.EnterActions> 
    <MultiTrigger.ExitActions> 
     <BeginStoryboard Storyboard="{StaticResource StoryBoard2}"/> 
    </MultiTrigger.ExitActions> 
</MultiTrigger> 
+0

感谢您的答复,它看起来像我必须使用事件触发的停止动画,我能做到这一点通过检查一定像布尔型控件一样的属性? – user1202434 2012-03-22 16:55:40

+0

这太棒了。 +1 @Sascha – user1202434 2012-03-23 12:57:26