在WPF窗口上设置Visibility="Hidden"永远不会再次显示窗口

6

我已将主窗口的 Visibility 属性设置为 Hidden,并在 Window_Loaded 中添加了以下内容:

private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        this.Visibility = System.Windows.Visibility.Visible;
    }

但是它没有显示出窗口。这是有什么特定的原因吗?
2个回答

9

窗口只有在显示时才加载,根据您的代码,它将在加载完毕之前不会显示。显然这样是行不通的,对吧?


1
@程序员 我真的不太明白为什么要这样做,但是如果你将窗口的初始可见性设置为“Collapsed”,那么“Loaded”事件将被触发。 - Adi Lester

1
我也遇到了这个问题,只改变主窗口的可见性似乎不起作用,正如H.B.所指出的。在我的情况下,我希望在窗口完全加载后再显示它,并且可以通过使用此处链接的属性以及Window对象上的Show()和Hide()函数来实现。System.Windows.Window.ShowActivated
  1. 初始化窗口对象时不要将可见性设置为隐藏,而是按照以下步骤进行
  2. 将ShowActivated属性设置为false this.ShowActivated = false;
  3. 在窗口对象上调用Hide()函数 this.Hide();
  4. 在原始示例中的窗口加载函数中调用this.Show();

在某些WPF应用程序中,this引用可能无法按预期工作,但如果是这种情况,请转到XAML并找到窗口的名称属性。您应该能够通过该名称从代码引用窗口。例如:

<Window x:Name="MainWindow">
//Code Behind Below
MainWindow.ShowActivated = false;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接