2010-09-10 168 views
11

我相当大的WinForm应用程序需要GUI大修,但我无法一次完成所有工作。我需要知道我是否可以慢慢添加WPF,如果有,如何?将WPF与WinForm应用程序混合?

我可以添加WPF对话框吗?

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

编辑

我可以做我的WPF应用程序相反,把WinForm的对话框?

回答

10
+1

第2个链接现在被打破。有一个原因,我们不喜欢这里的链接的答案。 – 2015-01-02 17:45:21

+0

即使第一个链接现在不再可用:( – Pankaj 2015-11-17 15:31:52

+0

@潘卡伊 - 我已经更新了链接(完全改变了第二个),以便它们现在可以工作。如果我有时间,我会回来并更新一个示例。 – 2015-11-17 18:26:41

6

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

要承载WPF窗口在winform或Win32的应用程序之前打个电话.Show(你需要这条线)您WpfWindow:

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

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

0

您可以使用在系统中找到ElementHost控件.Windows.Forms.Integration命名空间。您需要参考WindowsFormsIntegration程序集(在WindowsFormsIntegration.dll中)

此控件是一个空容器,您可以将WPF控件放入其中。

myElementHost.Child = someWpfControl; 

你可以在你的工具箱中找到它,并像其他控件一样将它拖放到一个winform上;

enter image description here