我看到 Windows 有一个 Loaded
事件,但没有 Loading
事件(因为有 Closing
和 Closed
事件)。
我的预期是 Loaded
事件会在窗口实际显示之前发生。然而,看着 Window Lifetime Events , 它表明 Loaded
事件发生在 Activated
事件之后。
我在 Loaded
事件中放置了一些初始化代码,在窗口显示之后和我的内容出现之前有一段延迟。那么什么是最好的事件处理程序用于应该在显示窗口之前发生的窗口初始化?
最佳答案
您可以覆盖 App.xaml.cs 中的 OnStartup()
,并在调用 base.OnStartup(e);
之前执行一些操作。我刚刚检查过,这是在窗口的构造函数之前触发的。
或者,在其 xaml 文件中将窗口的可见性设置为 Hidden,在构造函数中进行初始化,然后在完成后将可见性设置为 Visible。这不会消除延迟,但延迟仅由您的初始化代码正在执行的操作引起,因此除非您采用异步方式,否则这是不可避免的。
关于c# - 了解 WPF 窗口事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37974502/