WPF和Windows窗体控件是否可以在同一个应用程序中使用?这个想法有多难或实际可行?
ElementHost
适配器,您可以相对简单地在WinForms应用程序中托管WPF控件;或者使用WindowsFormsHost
适配器,在WPF应用程序中托管WinForms控件。然而,关于如何执行这两种操作的网络资源并不是太多。在学习如何为自己完成这些任务的过程中,我很快就发现了两条路径之间固有的对称性,并将所有笔记浓缩成一篇文章,采用独特的方法比较和对比这些对称性:这篇文章实际上是两篇并排的文章,详细比较每个步骤,从一个技术中创建用户控件到在“相反”的技术中托管它。我的文章于2010年8月在SimpleTalk.com上发布,可以在此处找到:混合使用WPF和WinForms。我相信在WPF应用程序中,您可以放置一个WindowsFormsHost控件,它可以与WinForms代码进行互操作:
我们在现有的LOB WinForms应用程序中托管了相当复杂的WPF控件。虽然可以完成,但我们确实遇到了问题(一些无疑是由于陡峭的学习曲线造成的)。这些问题主要与预期时未触发失去焦点事件以及键盘导航问题有关。
您也可以使用HWNDSource和HWNDHost控件将WPF控件嵌入到WinForms(或任何Win32,实际上)应用程序中。
你可以这样做,即在WPF应用程序中使用Windows Forms,或在Windows Forms中使用WPF控件。www.novamind.com的思维导图应用程序成功地融合了这两种技术。