关闭 WPF 应用程序后 System.Windows.MessageBox.Show() 在后台保持打开状态
Posted
技术标签:
【中文标题】关闭 WPF 应用程序后 System.Windows.MessageBox.Show() 在后台保持打开状态【英文标题】:System.Windows.MessageBox.Show() remains open in background after closing WPF application 【发布时间】:2021-07-17 12:14:52 【问题描述】:最近我尝试在 WPF 项目中实现 System.Windows.MessageBox.Show()。我正在使用使用 xaml 标签 "WindowState="Maximized" " 的全屏应用程序。现在问题与消息框有关,假设如果用户在主窗口打开时收到消息框,那么用户 1st 必须单击消息框弹出窗口,然后只有他才能执行任何其他操作。但是每当用户在不关闭消息框的情况下最小化应用程序时。它将在后台保持打开状态,如果我们关闭应用程序,它将在后台运行
【问题讨论】:
【参考方案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 窗口类。
问候
【讨论】:
以上是关于关闭 WPF 应用程序后 System.Windows.MessageBox.Show() 在后台保持打开状态的主要内容,如果未能解决你的问题,请参考以下文章
用不了System.Windows.Forms,如何使用MessageBox?
关闭 WPF 应用程序后 System.Windows.MessageBox.Show() 在后台保持打开状态