Window.loaded在窗口完全加载之前触发

时间:2012-01-16 21:43:46

标签: wpf

我有这个代码:
Window w = // something
w.Loaded += // some code to take a screenshot of the window
w.Show();

Loaded事件在窗口完全加载之前触发,我得到这个图像: Window screenshot

我可以在Thread.Sleep之后和屏幕截图之前添加w.Show()或其他内容,但我需要为数百个窗口运行这段代码。
我的问题是:当窗口满载时是否会发生另一个事件?或某种方式来实现这一点,而不是让线程进入睡眠状态。

由于

1 个答案:

答案 0 :(得分:25)

查看MSDN中的Object Lifetime Events文章,您可以找到:

  

Loaded事件在最终渲染之前引发,但在之后   布局系统已计算出渲染所需的所有值。   Loaded需要包含元素的逻辑树   内部完成,并连接到一个演示文稿源   提供HWND和渲染表面。

您应该尝试一些不太适合您需要的替代活动。您应该按以下顺序尝试:

请注意,这些事件可能会在您的窗口生命周期内多次触发,因此请记住您的应用程序。

WPF是数据驱动的UI架构,以我们习惯于WinForms的方式工作并不是很愉快。作为一个比我更聪明的人,曾经说过,WPF会让艰难的事情变得微不足道和琐碎的事情。

相关问题