创建一个在窗口加载时运行的动画
本文关键字:加载 运行 动画 窗口 一个 创建 | 更新日期: 2023-09-27 18:14:57
我创建了一个动画,需要400毫秒才能运行,并将其附加到Window
的Loaded
RoutedEvent
的EventTrigger
上。
但是我认为窗口在加载后没有立即显示*,所以我根本看不到动画。
当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();