我目前正在开发一个具有多个窗口的 WPF 应用程序。从“主”窗口,您应该能够关闭整个应用程序。在应用程序关闭之前,客户端希望它显示一个对话框,基本上询问“你确定要关闭应用程序吗”并阻止所有其他窗口,直到用户回答。
我目前正在使用 MessageBox.Show() 来创建此对话框,但由于某种原因它只阻塞了主窗口。
这是我所说的最简单的例子;如果您创建一个带有两个按钮的 WPF 窗口:
private void openChildWindowButton_Click(object sender, RoutedEventArgs e)
{
var window = new ChildWindow();
window.Show();
}
private void openDialogButton_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(this, "This should freeze all other windows");
}
打开一个对话框将完全冻结第一个窗口。如果您单击它或尝试任何类型的交互,操作系统会发出“叮!” 声音并闪烁消息框上的边框。但是您打开的所有其他窗口都可以单击、移动、调整大小等,这就是我想要阻止的。