制作动画队列

时间:2018-04-08 10:38:56

标签: c# wpf animation

所以我搜索了一个解决方案,但我找不到任何东西......

我有一个使用Storyboard进行动画制作的应用程序,以及一个创建动画并启动动画的按钮。看起来像这样:

DoubleAnimation animation = new DoubleAnimation
        {
            //properties
        };

        sb = new Storyboard();//sb is the Storyboard
        sb.Children.Add(animation);

        Storyboard.SetTargetName(animation, myControl.Name);
        Storyboard.SetTargetProperty(animation, new PropertyPath(Canvas.TopProperty));

        sb.Begin(this);

问题在于,当动画仍在运行时单击按钮时,它会重新启动动画,我希望它能够将其添加到订单中。所以当动画结束时,它会一遍又一遍地重复开始,这是我点击按钮的次数。

1 个答案:

答案 0 :(得分:0)

我建议你不要试图更改已经运行的故事板,而是仅使用动画列表。 或者故事板,如果你需要在故事板中使用某些功能,比如一次动画几件事。

然后,您可以将它们添加到列表(甚至是队列)。 订阅每个完成的活动。 保留currentIndex指针,以便知道哪个正在运行。 当命中完成的事件时,从刚完成的事件中取消挂钩事件处理程序,挂钩下一个事件处理程序。开始下一个故事板。