在Winforms中,我们有Show(IWin32Window所有者)方法来显示基于传递给Show方法的所有者句柄的表单。
我想在WPF窗口中有类似的行为。但是WPF窗口没有Show方法接受所有者句柄。
我找到的另一个替代方法是将window.Owner设置为所有者窗口,然后使用window.Show()。但通过这样做,我们只能指定一个WPF窗口作为所有者。 在我的情况下,所有者可以是winform或WPF窗口。我们怎样才能做到这一点?
答案 0 :(得分:3)
设置窗口的Owner
属性是在两个WPF窗口之间创建关系的正确方法(根据Window.Owner
属性MSDN页面的“备注”部分)。
但是,如果您要将所有者设置为Winforms Form
,则必须使用WindowInteropHelper
类:
WindowInteropHelper helper = new WindowInteropHelper(wpfWindow);
helper.Owner = form.Handle;