如何检测WPF窗口的第一次显示
本文关键字:窗口 第一次 显示 WPF 何检测 检测 | 更新日期: 2023-09-27 18:10:06
我想知道哪是正确的方法来检测当一个WPF窗口已显示第一次?
有一个叫做Loaded
的事件,你可以用它来确定你的窗口何时准备好了。
当元素被布局、呈现并准备好进行交互时发生。
设置XAML
中的处理程序<StackPanel
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SDKSample.FELoaded"
Loaded="OnLoad"
Name="root">
</StackPanel>
添加隐藏代码
void OnLoad(object sender, RoutedEventArgs e)
{
Button b1 = new Button();
b1.Content = "New Button";
root.Children.Add(b1);
b1.Height = 25;
b1.Width = 200;
b1.HorizontalAlignment = HorizontalAlignment.Left;
}
Loaded可以多次调用
加载事件和初始化事件
根据我的测试和上面的链接,Loaded事件可以被触发多次。
所以,你需要在OnLoaded处理程序中设置一个标志。
例如,如果Stack Panel在TabItem控件中,则每次进入tab时都会调用loaded
我建议创建一个bool标志并检查它,并在构造函数中将其设置为true
bool FirstTime = true;
void OnLoad(object sender, RoutedEventArgs e)
{
if (FirstTime)
{
FirstTime = false;
//do your stuff first-time
}
else
{
//do your stuff for other
}
}