我有一个故事板,我重复使用它来制作一些图片的动画,我想在每个动画之后执行一些操作,其中包括一些计算,然后运行另一个动画,所以我相信我应该使用 StoryBoard 的 Completed EventMyStoryboard.Completed += storyboard_Completed;
我很好奇的是,我应该在当前 StoryBoard 中开始下一个动画Storyboard_Completed Event
吗?而且,如果我使用 Application.Current.Dispatcher 对象在单独的线程中启动第一个动画,会有什么影响吗?
如果我使用 Application.Current.Dispatcher 在单独的线程中调用 StoryBoard.Begin(),是否还会在 UI 线程中调用 Storyboard_Completed 事件?在这种情况下,我还需要将 Next Animation 包装在另一个 Dispatcher Invoke 中吗?
private void Story_Completed(object sender, EventArgs e)
{
Application.Current.Dispatcher.Invoke((Action)delegate()
{
SomeNewStoryBoardAnimation.Begin();
}
}
这个对吗?或者有没有更好的方法来检查故事板是否已经结束并在此之后立即开始下一组计算和故事板动画?
我曾想过使用单个后台工作人员按顺序处理所有动画和计算,但我也想知道如何在开始下一组计算和动画之前“等待”动画完成。BackGroundWorkerThread.sleep
在等待动画完成时是否正常?