将WPF与WinForm应用程序混合使用?

时间:2010-09-10 13:57:08

标签: wpf winforms

我相当大的WinForm应用程序需要进行GUI大修,但我不能一次完成所有操作。我需要知道我是否可以慢慢地将WPF添加到其中,如果是,那该怎么办?

我可以添加WPF对话框吗?

我可以在WinForm中添加WPF“面板”,以便嵌入WPF元素吗?

修改

我是否可以执行相反的操作并将WinForm对话框放入我的WPF应用程序中?

3 个答案:

答案 0 :(得分:10)

答案 1 :(得分:6)

是的,我成功地混合了winforms和WPF。我甚至设法将WPF窗口添加到win32应用程序,将此应用程序更改为dll并使用WPF应用程序显示显示WPF窗口的win32窗口。

要在WinForm或win32应用程序中托管WPF窗口,你需要这条线。显示()你的WpfWindow:

System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(myWpfWindow); 

请参阅http://msdn.microsoft.com/en-us/library/aa348549.aspx

答案 2 :(得分:0)

您可以使用System.Windows.Forms.Integration命名空间中的ElementHost控件。您将需要对WindowsFormsIntegration程序集的引用(在WindowsFormsIntegration.dll中)

此控件是一个空容器,您可以在其中放置WPF控件,例如

myElementHost.Child = someWpfControl;

您可以在工具箱中找到它并将其拖放到winform上,就像任何其他控件一样;

enter image description here