WPF WinForms多层次混合嵌套

本文关键字:嵌套 混合 多层次 WinForms WPF | 更新日期: 2023-09-27 18:02:28

我在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控件是托管在一个元素thost。这个WPF控件包含了WinFormsHost中的其他WinForms控件。简而言之:WPF -> WinForms -> WPF -> WinForms。

到目前为止,我没有遇到任何问题。在MSDN页面上找到这个小注释后,我想知道在这种情况下究竟不支持什么,因为它对我有效。

任何想法?

WPF WinForms多层次混合嵌套

我想说,"不支持"的感觉是"风险自负"。大多数事情会起作用,有些事情不会起作用,这取决于您的特定应用程序的结果是否可以接受。或者,在采用了一些变通方法后,您可能会获得可接受的结果。MS不会特意去让它工作。

我曾经使用过一个包含WinForms- wpf -WinForms嵌套的项目,一般来说,它工作得很好,不需要重写WinForms组件。Focus是一个问题-嵌套控件的行为不像您期望的那样与焦点获得/丢失事件相关,并且键盘焦点可能会卡在嵌套控件中。宿主元素是否认为自己有焦点与被包含的控件是否有焦点之间可能存在差异。因此,我建议您将测试重点放在用户输入事件和焦点上。