【发布时间】:2014-01-09 18:57:46
【问题描述】:
我正在使用Application.Current.Activated 在单击任何窗口时将所有窗口置于前面。这很好用,但是当我使用 .ShowDialog() 打开模式对话框时不起作用
单击应用程序的其他窗口(对话框除外)不会导致应用程序被激活。默认行为是什么都不做。 (点击似乎完全被忽略!)
- 我怎样才能使它在单击应用程序的任何窗口时,将打开的对话框置于最前面? (预期行为取决于每个应用程序的运行情况)
是的:我确实将对话框的所有者设置为我的主窗口,单击主窗口会产生所需的结果,但单击任何其他窗口都不会执行任何操作。
代码:
创建一个新的 WPF 项目并添加两个窗口。
然后在 MainWindow 上放一个按钮。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Window1 foo = new Window1();
foo.Show();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Window2 modal = new Window2();
modal.Owner = this;
modal.ShowDialog();
}
}
要查看我在说什么,请单击按钮以打开模式对话框。
所需的行为是单击 MainWindow 时发生的情况。
我希望在单击 Window1 时发生同样的情况。
【问题讨论】:
标签: wpf events modal-dialog window