如何使主窗口等到C#WPF中新打开的窗口关闭?

时间:2013-12-12 09:53:58

标签: c# wpf windows window wait

我是WPF和C#的新手,请耐心等待。

我有一个主窗口,打开一个新窗口。现在这个新窗口是一个提示是否覆盖文件,主窗口访问新窗口中的公共变量以检查提示的结果。

但我无法让主窗口处理等到新窗口关闭。

 Window1 Win = new Window1();
 Win.Show();

 if (Win.pr_res == 1)
 {
      abc.Text = "File to be overwritten";
      File.Delete(_destination);
      Start();
 }
 else
 {
      abc.Text = "Operation Aborted";
 }

我尝试在主窗口中添加一个while循环检查另一个公共布尔值,但这只是挂起整个程序。

 while(!_closecheck);

欢迎任何建议。

4 个答案:

答案 0 :(得分:28)

使用ShowDialog代替Show -

Win.ShowDialog();

来自MSDN -

  

打开一个窗口,仅在新打开的窗口时返回   闭合。

答案 1 :(得分:4)

使用ShowDialog()方法打开一个窗口,仅在新打开的窗口关闭时返回。

语法

Win.ShowDialog();

答案 2 :(得分:2)

虽然ShowDialog工作正常,但如果您不喜欢该模态窗口,则可以设置MainWindow.IsEnabled = false。有时查看主窗口很有用。

答案 3 :(得分:0)

不使用.Show()属性打开/显示窗口,而是使用.ShowDialog()代替:)