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

Wpf Window.loaded在窗口完全加载之前激发,wpf,Wpf,我有以下代码: windoww=//某物 w.Loaded+=//一些代码可以拍摄窗口的屏幕截图 w.Show() 加载的事件在窗口完全加载之前触发,我得到以下图像: 我可以在w.Show()之后和屏幕截图之前添加Thread.Sleep或其他内容,但我需要在数百个窗口中运行这段代码。 我的问题是:当窗口完全加载时是否还有另一个事件触发?或者是在不让线程休眠的情况下实现这一点的方法 感谢查看MSDN中的文章,您可以找到: 加载的事件在最终渲染之前引发,但在 布局系统已计算渲染所需的所有值。 L

我有以下代码:
windoww=//某物

w.Loaded+=//一些代码可以拍摄窗口的屏幕截图

w.Show()

加载的事件在窗口完全加载之前触发,我得到以下图像:

我可以在
w.Show()
之后和屏幕截图之前添加
Thread.Sleep
或其他内容,但我需要在数百个窗口中运行这段代码。
我的问题是:当窗口完全加载时是否还有另一个事件触发?或者是在不让线程休眠的情况下实现这一点的方法

感谢查看MSDN中的文章,您可以找到:

加载的事件在最终渲染之前引发,但在 布局系统已计算渲染所需的所有值。 Loaded需要包含元素的逻辑树 内已完成,并连接到 提供HWND和渲染曲面

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

请注意,这些事件可能会在窗口的生命周期内触发多次,所以在编写应用程序时要记住这一点


WPF是数据驱动的UI架构,以我们在WinForms中习惯的方式使用它不是很愉快。正如一位比我聪明的人曾经说过的那样,WPF让艰难的事情变得琐碎,让琐碎的事情变得艰难。

@H.B.我需要一张我生活中每个窗口的截图project@H.B.这真的不是他的问题的重点,这个问题对两个窗口都有意义。我不想等4秒钟才看到2张截图,而且我也不想因为等待时间太短而不确定自己是否能得到截图。有时,你可能需要(上帝禁止)200个相同窗口的截图和不同的数据。我知道架构方面的问题不容忽视,但像这样的问题并不罕见,人们无法通过重新设计和重写大型代码库来解决它们。在我看来,这个问题很有道理。@Nikola:我从来没有说过这个问题……第一个和第三个的结果是一样的,第二个抛出异常。你说它抛出异常是什么意思?异常发生在处理程序中还是在.NET framework中?其他两个的结果看起来完全相同,还是window chrome加载正确?另外,尝试将窗口渲染为位图。创建RTB类的实例,创建窗口的实例,无需显示它,并将窗口传递给Render方法。RenderTargetBitmap适用于控件,但当我尝试将其用于窗口时,它仅打印空白图像。。。我想再问一个问题:P。。。关于异常:已修复,但结果仍然相同:)您可以在尝试渲染之前尝试在窗口上调用Arrange方法。