【问题标题】:How to make main window wait until a newly opened window closes in C# WPF?如何让主窗口等到 C# WPF 中新打开的窗口关闭?
【发布时间】:2013-12-30 15:58:37
【问题描述】:

我是 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);

欢迎提出任何建议。

【问题讨论】:

    标签: c# wpf windows window wait


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

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

    语法

    Win.ShowDialog();
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        使用ShowDialog 而不是Show -

        Win.ShowDialog();
        

        来自MSDN-

        打开一个窗口,只有当新打开的窗口是 关闭。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-25
          • 1970-01-01
          • 2012-10-17
          • 1970-01-01
          • 1970-01-01
          • 2023-01-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多