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

本文关键字:加载 运行 动画 窗口 一个 创建 | 更新日期: 2023-09-27 18:14:57

我创建了一个动画,需要400毫秒才能运行,并将其附加到WindowLoaded RoutedEventEventTrigger上。

但是我认为窗口在加载后没有立即显示*,所以我根本看不到动画。

Window加载时,运行动画的常见模式是什么?

还有,什么时候我应该在单独的线程中运行动画?

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

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

400毫秒非常快,因此加载窗口可能需要更长的时间。我建议保持它在同一个线程,但使用计时器事件。定时器将其延迟至窗口完全加载的时间间隔。

我将时间事件用于启动屏幕等。我相信,如果是定时动画,我也会这么做。只需要一点练习。我的建议是在时间上使用较长的延迟,以确保它按照你想要的方式运行。然后减少计时器,把它放在加载屏幕上你想要的地方。

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

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

  • Window.ContentRendered
  • UIElement.LayoutUpdated
  • Window.Activated
到目前为止,Window.Activated事件似乎最适合我。唯一需要注意的是,这些事件都不是RoutedEvent事件,因此您需要在后面的代码中定义动画,如下所示:
this.Activated += (sender, args) => ((Storyboard) FindResource("MyAnimation")).Begin();