2010-05-29 110 views
3

是否有简单的方法向后播放一些StoryBoad(反转)?因为有一个方法Storyboard.Begin()我希望有一些像“Storyboard.BeginReversed()”的方法,但我找不到它。向后播放动画(storyboard)

如果没有办法向后播放动画,那我必须为大部分动画补充动画编写动画。这对我来说很不好(代码重复的某种)。

基本上我只是动画显示和隐藏网格。

回答

1

你可以翻转“From”和“To”并再次播放吗?

+0

谢谢你的回答。好的,就是这样......但它不是很清楚。问题是你必须在某个地方保存你翻转过的信息。我宁愿有更清楚的事情。真的没有这个方法,没有'Storyboard'的创造者没有想到这个? – drasto 2010-05-29 23:08:00

+0

@ drasto-我想如果你想反向播放动画,设计师会将其视为一种不同的动画。您可以轻松创建这样的动画。当然,你总是可以编写扩展方法来扩展你使用的故事板,使其更加清洁。 – 2010-05-29 23:24:53

+0

谢谢。我会尝试写扩展方法,但这并不容易。在前进动画仍在运行和类似的情况下,我将不得不关注这样的想法来调用反向动画。 – drasto 2010-05-29 23:44:25

-1

我认为这将有助于你(见下文的XAML示例)

VAR分镜= this.Resources [ “Storyboard1”]作为故事板;

 var anim = storyboard.Children[0] as DoubleAnimationUsingKeyFrames; 

     anim.AutoReverse = true; 

     anim.RepeatBehavior = RepeatBehavior.Forever; 

<Storyboard x:Key="Storyboard1"> 
     <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="border" Storyboard.TargetProperty="(FrameworkElement.Width)"> 
      <SplineDoubleKeyFrame KeyTime="00:00:00" Value="200"/> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="300"/> 
     </DoubleAnimationUsingKeyFrames> 
    </Storyboard> 
+0

对不起,我不想自动重复播放我想播放它,也许在原始播放完成后。 – drasto 2010-06-06 17:35:57