是否可以从 WPF 用户控件(即 ElementHost 的子级)显示模态窗口,并将模态窗口的所有者/父级设置为包含表单控件?

我猜你不能这样做,因为 Owner 属性采用 Window 的一个实例,因为我想将它设置为 Element Host 控件的父级,这是一个旧的 Windows Forms Form 控件。只是想知道是否有解决方法或替代方法。

问题是当显示模态窗口并且用户切换到另一个应用程序,然后再次返回时,模态窗口被隐藏并且用户无法与主窗口交互。这是因为 Windows 认为模态窗口仍然显示,当它没有显示时,因为没有设置所有者/父关系。

干杯,
詹姆士。

最佳答案

我正在使用 WindowInteropHelper 来解决这样的问题:

var wpfDialog = new MyWpfDialog();
var interopHelper = new WindowInteropHelper(wpfDialog)
        {
            Owner = winFormsDialog.Handle
        };

wpfDialog.ShowDialog();

关于WPF ShowDialog 和 ElementHost,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1387382/

10-10 20:16