显示隐藏的WPF窗口

Mah*_*amy 7 c# wpf

在WPF窗口中我想隐藏它,显示另一个窗口ShowDialog然后取消隐藏第一个窗口.


当我这样做时:

this.Hide();
var window2 = new Window2();
window2.ShowDialog();
this.Show();
Run Code Online (Sandbox Code Playgroud)

第一个窗口打开为空白窗口.

这种技术有什么问题?


当我这样做时:

var window2 = new Window2();
Visibility = Visibility.Collapsed;
window2.ShowDialog();
Visibility = Visibility.Visible;
Run Code Online (Sandbox Code Playgroud)

第一个窗口退出应用程序.

这种技术也有什么问题?

Ant*_*ell 12

你不应该在WPF中使用hide是winforms shenanigans.

相反

this.Visibility = Visibility.Collapsed;    
...    
this.Visibility = Visibility.Visible;
Run Code Online (Sandbox Code Playgroud)

另外我在上面看到你的评论,这不起作用.但是,我开始了一个新的WPF项目,做了这个,构建并运行它.有用.

请注意,没有错误.

在此输入图像描述

  • 为什么不能使用Hide?请注意,`Show`和`Hide`实际上将Visibility设置为`Visible`和`Hidden`.唯一的区别是它们是同步的,即在窗口实际更新之前它们不会返回.由于他使用的是"ShowDialog",因此可能更喜欢同步行为. (3认同)