重新开始故事板 - 动画

时间:2012-11-11 15:05:11

标签: c# xaml

我在我的代码MyAnim.Begin();

中调用了Storyboard-Animation

但是当我再次调用该方法时(例如,当我再次点击它时), 它会中断当前正在运行的动画并从头开始重新开始。

有没有办法,可以多次启动相同的动画而不会互相干扰?

我发了爆炸效果,我想让它一遍又一遍地爆炸。

1 个答案:

答案 0 :(得分:1)

Storyboard对象包含已完成的事件。当故事板完成运行时会被触发。

我建议这样的事情:

私有对象_locker = new object(); private bool _isProcessing; private int _waitingAnimations;

public void Setup()
{
    MyAnim.Completed+=CompletedExecution;
}
private void CompletedExecution(object sender, EventArgs args)
{
    bool runAnotherAnim;
    lock(_locker)
    {
        runAnotherAnim=_waitingAnimations>0;
        if(_waitingAnimations>0)
             _waitingAnimations--;

    }
    if(runAnotherAnim)
        MyAnim.Begin();
    else
        _isProcessing=false;
}
public void AddAnimation()
{
   lock(_locker)
   {
       if(_isProcessing)
       {
           _waitingAnimations++;
       }
       else
       {
           _isProcessing=true;
           MyAnim.Begin();

       }
   }

}

你需要查看Completed事件提供的参数,因为我是从内存中执行此操作,但我之前使用过它,它确实完成了你想要做的事情。

相关问题