c# – WPF WinForms多级混合嵌套

我在MSDN和其他网站(
http://msdn.microsoft.com/en-us/library/ms751797.aspx
http://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页面上找到那个小笔记后,我想知道那个场景究竟不支持什么,因为它对我有用.

有任何想法吗?

最佳答案 我会说“不支持”的意思是“你自担风险”.大多数事情都会奏效,有些事情不会奏效,而且取决于你的具体应用,结果是否可以接受.或者,在一些hacky变通方法到位后,您可能会获得可接受的结果. MS不会为了让它发挥作用而走出困境.

我已经使用了一个包含WinForms-WPF-WinForms嵌套的项目,并且通常可以工作 – 足以不重写WinForms组件.聚焦是一个问题 – 嵌套控件的表现与你所期望的焦点获得/丢失事件无关,键盘焦点可能会卡在嵌套控件中.主机元素是否认为它具有焦点以及所包含的控件是否具有焦点可能存在差异.因此,我建议将测试重点放在用户输入事件和焦点上.

点赞