C# WPF WinForms多级混合嵌套

C# WPF WinForms多级混合嵌套,c#,wpf,winforms,winforms-interop,C#,Wpf,Winforms,Winforms Interop,我在MSDN和其他网站上读到(和)不支持WPF和WinForms控件的多级混合嵌套 我有一个应用程序,其中WPF窗口有一个WindowsFormsHost,其中WPF控件托管在ElementHost中。此WPF控件包含WinFormsHost中的其他WinForms控件。 简而言之:WPF->WinForms->WPF->WinForms 到目前为止,我没有任何问题。在MSDN页面上找到这个小注释后,我想知道在这个场景中到底有什么不受支持,因为它适合我 有什么想法吗?我想说“不受支持”的感觉是“

我在MSDN和其他网站上读到(和)不支持WPF和WinForms控件的多级混合嵌套

我有一个应用程序,其中WPF窗口有一个WindowsFormsHost,其中WPF控件托管在ElementHost中。此WPF控件包含WinFormsHost中的其他WinForms控件。 简而言之:WPF->WinForms->WPF->WinForms

到目前为止,我没有任何问题。在MSDN页面上找到这个小注释后,我想知道在这个场景中到底有什么不受支持,因为它适合我

有什么想法吗?

我想说“不受支持”的感觉是“你自己承担风险”。大多数事情都会起作用,有些事情不会起作用,这取决于您的特定应用程序是否可以接受结果。或者,在一些黑客解决方法到位后,您可能会获得可以接受的结果。微软不会通过这种方式让它发挥作用


我曾经处理过一个包含WinForms WPF WinForms嵌套的项目,总体来说,它运行良好,不需要重写WinForms组件。焦点是一个问题-嵌套控件的行为与您预期的焦点获得/丢失事件不完全一致,键盘焦点可能会卡在嵌套控件中。宿主元素是否认为它有焦点与包含的控件是否有焦点之间可能存在差异。因此,我建议您将测试重点放在用户输入事件和焦点上。

我在您发布的链接中按ctrl+F组合了“hybrid”一词,但在全文中没有发现。作为旁白。你为什么这么做?我在两个链接中都发现了“混合”这个词,在MSDN链接中,它位于名为Note的框中,该框在3行介绍文本之后开始。我这样做是因为我必须使用传统的WinForms控件,并希望使用WPF开发所有新东西。有时我需要在WinForms控件中添加一个新的WPF控件,否则我必须在WinForms中开发新的控件,而我绝对不想这样做。我可以问您需要什么WinForms控件?。。。此外,除了你需要使用它之外,我真的不认为以这种方式混合使用它们是一个好主意。我同意这不是一个好主意,但是如果你需要一步一步地迁移,你没有其他选择。。。这些控件主要由以下WinForms控件组合而成:Label、TextBox和PictureBoxI无法一次性转换所有内容以共享您的体验!我可以问一下嵌套在您的项目中有多深吗?在这种情况下,只有WF-WPF-WF如前所述(即在现有应用程序的新WPF组件中重用旧控件)。我认为这还取决于您的窗口是什么类型,如果您使用的是WinForms基础结构,并且WPF包装到其中,如果是WPF,那么您使用的是WPF基础结构,WinForms被包装到其中。我认为WPF基础设施应该比其他方式更好地与WinForms交互?