我目前正在开发一个有多个窗口的WPF应用程序。从“主”窗口,您应该能够关闭整个应用程序。在关闭应用程序之前,客户希望它显示一个对话框,询问“您确定要关闭应用程序吗”,并阻止用户回答之前的其他所有窗口。
我目前使用MessageBox.Show()来创建此对话框,但由于某种原因,它只会阻止主窗口。
以下是我所说的最简单的示例;如果您创建一个具有两个按钮的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");
}
打开对话框会完全冻结第一个窗口。如果您单击它或尝试任何交互,操作系统将发出“叮!”声并闪烁消息框的边框。但是,您打开的所有其他窗口都可以单击、移动、调整大小等等,而这正是我想要防止的。
Show()
函数的父参数传递。 - 500 - Internal Server Error