gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 02:48:43 25 4
gpt4 key购买 nike

我有这个代码:Window w = // somethingw.Loaded += // some code to take a screenshot of the windoww.Show();
Loaded 事件在窗口完全加载之前触发,我得到这个图像:
Window screenshot

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

谢谢

最佳答案

调查Object Lifetime Events MSDN中的文章你可以找到:

The Loaded event is raised before the final rendering, but after the layout system has calculated all necessary values for rendering. Loaded entails that the logical tree that an element is contained within is complete, and connects to a presentation source that provides the HWND and the rendering surface.



您应该尝试一些不完全适合您需要的替代事件。您应该按以下顺序尝试:
  • Window.ContentRendered
  • UIElement.LayoutUpdated
  • Window.Activated

  • 请注意,这些事件可能会在窗口的生命周期内多次触发,因此请在编写应用程序时牢记这一点。

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

    关于wpf - Window.loaded 在窗口完全加载之前触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8886698/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com