【问题标题】:System.Windows.MessageBox.Show() remains open in background after closing WPF application关闭 WPF 应用程序后 System.Windows.MessageBox.Show() 在后台保持打开状态
【发布时间】:2021-07-17 12:14:52
【问题描述】:

最近我尝试在 WPF 项目中实现 System.Windows.MessageBox.Show()。我正在使用使用 xaml 标签 "WindowState="Maximized" " 的全屏应用程序。现在问题与消息框有关,假设如果用户在主窗口打开时收到消息框,那么用户 1st 必须单击消息框弹出窗口,然后只有他才能执行任何其他操作。但是每当用户在不关闭消息框的情况下最小化应用程序时。它将在后台保持打开状态,如果我们关闭应用程序,它将在后台运行

【问题讨论】:

    标签: c# .net wpf winforms messagebox


    【解决方案1】:

    由于消息框是当前窗口的,它总是作为对话框打开,它是提示的。因此,不可能忽略它并继续使用当前或应用程序窗口。如果您想打开它以便可以忽略它并让用户与应用程序交互,您将不得不制作另一个可以充当消息框的表单。

    【讨论】:

      【解决方案2】:

      MessageBox 用于显示用于某种用户确认的对话框。因此行为符合标准。

      但是,如果您需要允许用户继续使用父窗口而不强制他关闭子窗口,则可以使用具有所需内容的窗口而不是 MessageBox:

      private void btnPopup_Click(object sender, RoutedEventArgs e)
      {
        new Window() { Owner = this}.Show(); // Pass this as owner to allow closing child window when application closes
        MessageBox.Show("Popup Shown");
      }
      

      您可以根据您的要求创建带有 UI 的自定义 WPF 窗口类。

      问候

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-11
        • 2023-03-11
        • 1970-01-01
        • 2013-10-21
        • 1970-01-01
        • 2021-06-13
        • 2023-03-05
        • 2019-06-19
        相关资源
        最近更新 更多