如何防止动画被中断[WPF]

时间:2009-10-02 06:09:22

标签: wpf animation

例如,我有一个动画,在点击鼠标时会触发。

问题是如果你一直点击动画就会重启。

我想保证动画始终完成。

想法?

3 个答案:

答案 0 :(得分:2)

我发现的一个技巧是not include the "From" on my animations。这样,值将始终以您正在动画的属性的任何值开始。这意味着如果动画重新启动,它将不会将属性重置为其起始值,而是看起来像是继续原始动画。

答案 1 :(得分:0)

仍然不是您正在寻找的确切答案,但这解决了我遇到的一个问题,我遇到了一个MouseDown触发器,它在一个仍在运行的动画之上启动了一个新动画:

<BeginStoryboard>
  <Storyboard AutoReverse="True">
    <ColorAnimation Storyboard.TargetProperty="(Label.Foreground).(SolidColorBrush.Color)"
                    To="Red" Duration="0:0:1"/>
  </Storyboard>

这个动画的问题是,当它在完成之前再次被触发时,自动反转功能将其反转为它在第二次触发之前达到的红色阴影,而不是它之前的原始颜色。第一部动画开始了。

在我的情况下,这很容易解决:

<BeginStoryBoard HandOffBehavior="Compose">

答案 2 :(得分:0)

我最终得到了类似下面的结果 - 从代码触发动画并设置一个标志,如果前一个动画尚未完成,则防止再次触发动画。我不确定,这可以在多大程度上完成 XAML-only ...

isset