创建一个在窗口加载时运行的动画

时间:2013-05-23 13:31:46

标签: c# wpf animation window eventtrigger

我创建了一个需要400毫秒才能运行的动画,并将其附加到我EventTrigger的{​​{1}} Loaded的{​​{1}}。

但是我认为窗口在加载后不会立即出现*,所以根本看不到动画。

RoutedEvent加载时运行动画有哪些常见模式?

而且,我应该何时在单独的线程中运行动画?

*它可能在加载后绘制窗口,并在完成绘制后显示窗口,澄清将有所帮助。

2 个答案:

答案 0 :(得分:0)

400毫秒非常快,因此加载窗口可能需要更长时间。我建议将它保存在同一个线程中,但使用一个计时器事件。Timer Interval来延迟它直到窗口完全加载。

我将时间事件用于启动画面等等......我肯定会为定时动画做同样的事情。这需要一点点练习。我的建议是在时间上使用很长的延迟,以确保它按您想要的方式运行...然后减少计时器,将其放在加载屏幕中的所需位置。

答案 1 :(得分:0)

我已尝试过以下答案中建议的解决方案:

https://stackoverflow.com/a/8886941/494094

  • Window.ContentRendered
  • UIElement.LayoutUpdated
  • Window.Activated

到目前为止,Window.Activated事件似乎最适合我。唯一需要注意的是,这些事件都不是RoutedEvent,所以你需要在后面的代码中定义动画,如下所示:

this.Activated += (sender, args) => ((Storyboard) FindResource("MyAnimation")).Begin();