2013-03-06 83 views
4

我在MSDN和其他網站(http://msdn.microsoft.com/en-us/library/ms751797.aspxhttp://www.abhishekshukla.com/wpf/advanced-wpf-part-5-of-5-interop-in-windows-presentation-foundation/)不支持的WPF和WinForms控件的多級混合嵌套讀...WPF的WinForms多級混合築巢

我有一個應用程序,其中一個WPF窗口具有一個WindowsFormsHost,其中一個WPF控件位於一個ElementHost中。此WPF控件包含WinFormsHost中的其他WinForms控件。 簡而言之:WPF - > WinForms - > WPF - > WinForms。

到目前爲止,我沒有任何問題。在MSDN頁面上找到這個小記錄後,我想知道該場景中不支持什麼,因爲它適用於我。

任何想法?

+0

我在你發佈的鏈接中做了「混合」一詞的ctrl + F,並沒有在整個文本中找到它。作爲旁白。你爲什麼這樣做?與WPF保持合作並放棄無用的winforms是不是更好? – 2013-03-06 15:16:06

+1

我在兩個鏈接中都找到了混合詞,在MSDN中,它在名爲Note的框中鏈接它,它在3行介紹文本之後開始。我這樣做是因爲我必須使用傳統的WinForms控件,並且想用WPF開發所有新東西。有時我需要在WinForms控件中放置一個新的WPF控件,否則我必須在WinForms中開發新的控件,我肯定不想要 – Harry13 2013-03-06 15:21:58

+0

請問您需要什麼樣的WinForms控件?...另外,除了需要使用它,我真的不認爲它是一個好主意,以這種方式混合它們 – 2013-03-06 15:45:48

回答

2

我會說「不支持」的意思是「自負風險」。大多數事情都會奏效,有些事情是行不通的,而且這取決於你的具體應用,結果是否可以接受。或者,也許你會達到一些哈克解決方法後,可以接受的結果。 MS不會走出去,讓它工作。

我已經與一個包含WinForms-WPF-WinForms嵌套的項目合作過了,一般來說這個項目工作得很好 - 不會重寫WinForms組件。 焦點是一個問題 - 嵌套控件的行爲不如您期望的與焦點獲得/丟失事件有關,並且鍵盤焦點可能卡在嵌套控件中。宿主元素是否認爲它具有焦點以及包含的控件是否存在差異。所以我建議將測試集中在用戶輸入事件和焦點上。

+0

感謝您分享您的體驗!請問您的項目中嵌套的程度有多深? – Harry13 2013-03-07 06:35:30

+0

在這種情況下,只有所描述的WF-WPF-WF(即在現有應用中的新WPF組件中重複使用傳統控件)。 – 2013-03-07 08:46:21

+0

我認爲這也取決於你的窗口是什麼類型,如果它是WinForms,你正在使用WinForms基礎結構和WPF包裝它,如果它是WPF,你正在使用WPF基礎結構並且WinForms被包裝進它。我認爲WPF基礎架構應該比其他方式更好地與WinForms交互? – Harry13 2013-03-08 08:15:33