如何制作WPF ShowDialog()块父窗口

时间:2015-03-25 16:35:31

标签: wpf wpf-controls

WPF 4.5

我有一个应用程序,我通过实例化它从我的应用程序主窗口显示一个模态窗口,将其所有者设置为主窗口,然后调用ShowDialog()。模态窗口具有“Topmost = true”。主窗口没有。

当我运行我的应用程序时,模态窗口显示在主窗口的前面,并且它按预期保存在主窗口的前面。但是,我只需点击模态窗口后面的主窗口即可激活主窗口并操作它......我甚至可以关闭它!

我认为这绝对不是具有模态窗口的应用程序所需的行为。我很困惑为什么WPF会这样处理它。更重要的是,我需要一个解决方案,将模态窗口保持在前面,同时还阻止访问它后面的主窗口(这不应该是模态窗口的基本功能吗?)

我相信在WinForms中使用ShowDialog时这种期望的行为一直是默认行为(当天回来。)我在这里缺少什么,以及如何使用WPF?

1 个答案:

答案 0 :(得分:0)

您必须在ShowDialog:

之前设置所有者窗口
modalWindow.Owner = RootWindow;