我想知道哪种是检测 WPF 窗口何时首次显示的正确方法?
问问题
11380 次
3 回答
9
有一个名为的事件Loaded
,您可以使用它来确定您的窗口何时准备就绪。
来自MSDN
当元素布局、渲染并准备好交互时发生。
在 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;
}
于 2013-04-19T13:53:45.317 回答
2
Loaded 可以被多次调用。
根据我的测试和上面的链接,可以多次触发 Loaded 事件。
因此,您需要在 OnLoaded 处理程序中设置一个标志。
例如,如果 Stack Panel 在 TabItem 控件内,则每次进入选项卡时都会调用loaded。
于 2017-08-29T08:12:35.053 回答
-1
我建议制作一个 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
}
}
于 2013-04-19T13:56:31.497 回答