c# - WPF WinForms 多层混合嵌套

标签 c# wpf winforms winforms-interop

我在 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 控件包含也在 WinFormsHost 中的其他 WinForms 控件。 简而言之:WPF -> WinForms -> WPF -> WinForms。

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

有什么想法吗?

最佳答案

我会说“不受支持”的意思是“风险自负”。大多数事情都会起作用,有些事情不会起作用,并且结果是否可以接受取决于您的特定应用程序。或者,在采取一些棘手的解决方法后,您可能会获得可接受的结果。微软不会竭尽全力让它发挥作用。

我曾处理过一个包含 WinForms-WPF-WinForms 嵌套的项目,并且总体上可以正常工作 - 足够好,无需重写 WinForms 组件。 焦点 是一个问题 - 嵌套控件在获得/失去焦点事件方面的表现并不像您预期​​的那样,并且键盘焦点可能会卡在嵌套控件中。宿主元素是否认为它具有焦点与所包含的控件是否具有焦点之间可能存在差异。因此,我建议您将测试重点放在用户输入事件和焦点上。

关于c# - WPF WinForms 多层混合嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15249983/

相关文章:

wpf - ItemsControl 与 SharedSizeGroup 和拉伸(stretch)

c# - ClickOnce 更新被用户取消,它再也不会要求更新

c# - 并非 global.asax C# 捕获的所有错误

c# - 通过用户控件调用页面点击事件

c# - 在 C# 中比较列表的更好方法

wpf - 在 Visual Studio Express 中创建 WPF 库

C# Xamarin.Android 图像显示在文件管理器中而不是库中

c# - 在 WPF 中模拟 Enter 键

c# - DPI 意识 - 在一个版本中没有意识到,在另一个版本中有系统意识

c# - 您如何控制运行时属性网格中的可见内容?