【问题标题】:Mixing WPF with a WinForm application?将 WPF 与 WinForm 应用程序混合使用?
【发布时间】:2011-04-10 18:03:52
【问题描述】:

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

我可以添加 WPF 对话框吗?

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

编辑

我可以做相反的事情并将 WinForm 对话框放在我的 WPF 应用程序中吗?

【问题讨论】:

标签: wpf winforms


【解决方案1】:

【讨论】:

  • 第二个链接现在已断开。我们不喜欢此处仅提供链接的答案是有原因的。
  • 现在连第一个链接都没有了:(
  • @Pankaj - 我已经更新了链接(完全更改了第二个),以便它们现在可以使用。如果我有时间,我会回来更新一个例子。
【解决方案2】:

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

要在 WinForm 或 win32 应用程序中托管 WPF 窗口,您将需要此行。Show() 您的 WpfWindow:

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

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

【讨论】:

    【解决方案3】:

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

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

    myElementHost.Child = someWpfControl;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-24
      • 2013-09-28
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      相关资源
      最近更新 更多