2010-06-29 66 views
6

我正在創建HUD窗口來檢查我的WinForms應用程序中的商務實體。我想有一個完全不同的窗口風格(最小化內容區域,只顯示TitleBar,沒有系統按鈕等),所以我創建了一個WPF應用程序。如何將WPF窗口添加到WinForms應用程序

問題是我想讓這個窗口在我的WinForms應用程序中'生存'。我不能只是將WPF添加爲OwnedForm,或者將主窗體設置爲WPF窗口的所有者。

那麼,怎樣才能做到這一點?

編輯:感謝pst我找到了答案。這裏是摘錄:

System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(_inspector); 
WindowInteropHelper inspectorHelper = new WindowInteropHelper(_inspector); 
inspectorHelper.Owner = this.Handle; 
_inspector.Show(); 

回答

5

WPF窗口有一個Win32窗口句柄/上下文。

請參閱WindowInteropHelper。你可以在Win32中使用它(或者有WinForms支持?)來設置WPF窗口的所有者窗口。請注意,句柄在「源初始化」(?)事件之前不存在。但是,僅使用WinForms,您可以根據需要自定義標題欄(您可以通過Win32覆蓋繪圖本身,並且我認爲您不用走這麼遠就會丟失所有控制框)。

如果您使用正確的關鍵字,這個主題有很多谷歌搜索結果。

+2

WindowInteropHelper工作正常!看來我沒有使用正確的關鍵字,我一直在尋找它。 再次感謝! – jpsstavares 2010-06-29 17:06:45

相關問題