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 窗口有一个 WindowsFormsHost,其中 WPF 控件托管在 ElementHost 中。此 WPF 控件包含其他 WinForms 控件,这些控件也在 WinFormsHost 中。简而言之:WPF -> WinForms -> WPF -> WinForms。

到目前为止,我对此没有任何问题。在 MSDN 页面上找到那个小注释后,我想知道该场景到底不支持什么,因为它对我有用。

有任何想法吗?

4

1 回答 1

2

我想说“不支持”的意思是“风险自负”。大多数事情都会起作用,有些事情不会起作用,结果是否可以接受取决于您的特定应用程序。或者,在一些 hacky 变通办法到位后,您可能会获得可接受的结果。MS不会竭尽全力让它发挥作用。

我已经处理了一个包含 WinForms-WPF-WinForms 嵌套的项目,并且通常效果很好 - 足以不重写 WinForms 组件。焦点是一个问题 - 嵌套控件的行为与您期望的与焦点获得/丢失事件相关的行为并不完全一样,并且键盘焦点可能会卡在嵌套控件中。宿主元素是否认为它具有焦点与包含的控件是否具有焦点之间可能存在差异。因此,我建议将您的测试集中在用户输入事件和焦点上。

于 2013-03-06T15:58:12.253 回答