我创建了一个需要400毫秒才能运行的动画,并将其附加到我EventTrigger
的{{1}} Loaded
的{{1}}。
但是我认为窗口在加载后不会立即出现*,所以根本看不到动画。
RoutedEvent
加载时运行动画有哪些常见模式?
而且,我应该何时在单独的线程中运行动画?
*它可能在加载后绘制窗口,并在完成绘制后显示窗口,澄清将有所帮助。
答案 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();