在WPF窗口中使用所有者句柄显示方法

时间:2014-04-14 05:41:30

标签: c# wpf

在Winforms中,我们有Show(IWin32Window所有者)方法来显示基于传递给Show方法的所有者句柄的表单。

我想在WPF窗口中有类似的行为。但是WPF窗口没有Show方法接受所有者句柄。

我找到的另一个替代方法是将window.Owner设置为所有者窗口,然后使用window.Show()。但通过这样做,我们只能指定一个WPF窗口作为所有者。 在我的情况下,所有者可以是winform或WPF窗口。我们怎样才能做到这一点?

1 个答案:

答案 0 :(得分:3)

设置窗口的Owner属性是在两个WPF窗口之间创建关系的正确方法(根据Window.Owner属性MSDN页面的“备注”部分)。

但是,如果您要将所有者设置为Winforms Form,则必须使用WindowInteropHelper类:

WindowInteropHelper helper = new WindowInteropHelper(wpfWindow);
helper.Owner = form.Handle;