2014-04-14 47 views
1

在Winforms中,我們使用Show(IWin32Window owner)方法根據傳遞給Show方法的所有者句柄來顯示錶單。在WPF窗口中使用所有者句柄顯示方法

我想在WPF窗口中有類似的行爲。但WPF窗口沒有接受所有者句柄的Show方法。

我發現的另一種方法是將window.Owner設置爲所有者窗口,然後使用window.Show()。但是通過這樣做,我們可以只分配一個WPF窗口作爲所有者。 在我的情況下,所有者可以是Winform或WPF窗口。我們怎樣才能做到這一點?

回答

2

設置窗口的Owner屬性是在兩個WPF窗口之間創建關係的正確方法(根據Window.Owner屬性MSDN頁的註釋部分)。

但是,如果你想擁有者設置爲一個WinForms Form,你必須使用WindowInteropHelper類:

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