我希望将两个现有的应用程序集成成一个。这两个应用程序之一是基于Windows Forms构建的,另一个是基于WPF构建的。
这是否可能实现?
WPF提供了WindowsFormsHost
类,允许您在WPF窗口内托管WinForms控件;相反,WinForms提供了ElementHost
,允许您在表单中托管WPF控件。
不幸的是,事情的进展情况高度依赖于您正在做什么,上次我检查时有不少问题。有关更多信息,请一定从此MSDN页面开始。
如果您想在同一应用程序中拥有“独立”的WPF窗口和WinForms表单,则必须使两个框架在UI线程的消息循环中“共享”一些代码。有关如何执行此操作的入门指南,请参见此处。
有许多类可以帮助你完成这个任务。
如果要在WPF窗口中托管Windows Forms控件,可以使用WindowsFormsHost
类。如果要在Windows Forms窗口中托管WPF控件,则可以使用ElementHost
类。
您可以在此处查看有关该主题的更多信息(Windows表单部分):
http://msdn.microsoft.com/en-us/library/ms753178.aspx