首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有可能同时包含Winforms和WPF的项目?

有没有可能同时包含Winforms和WPF的项目?
EN

Stack Overflow用户
提问于 2010-06-30 21:08:53
回答 5查看 3.4K关注 0票数 11

有没有可能同时包含Winforms和WPF的项目?

比方说,一个WinForm项目被一步一步地转换(一个窗体一个窗体地)在一个WPF项目中,是否有可能在一个按钮上打开一个Winform,而在另一个按钮上打开一个WPF?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-06-30 21:19:51

是。你必须选择一种技术来显示你的应用程序中的每个物理窗口和控件,但没有理由不能混合和匹配。

例如:

  • WinForms窗口可以显示WPF窗口。
  • WPF窗口可以显示WinForms窗口。
  • WinForms窗口可以包含WPF内容(请参阅ElementHost控件)。
  • WPF窗口可以包含WinForms控件(请参阅C9控件)。H210F211
票数 15
EN

Stack Overflow用户

发布于 2010-06-30 21:18:41

这很好用。可以在windows窗体中使用WPF窗口,也可以在WPF中使用Windows窗体窗口

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

http://msdn.microsoft.com/en-us/library/system.windows.forms.integration.windowsformshost.aspx

票数 2
EN

Stack Overflow用户

发布于 2010-06-30 21:32:01

您可能正在寻找的是ElementHost控件。它允许您获取WPF内容并将其宿主在Windows窗体窗口中。更多细节在这里:

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

还有一个控件可以让您反其道而行之:从WPF中托管Windows窗体内容:

http://nayyeri.net/host-windows-forms-controls-in-wpf

在这两者之间,您可以在一定程度上灵活地移动WPF和Windows窗体之间的“分界线”。

有一点你需要牢记。Windows窗体的内部工作原理是HWND的……由遗留窗口管理器(处理z顺序)管理的窗口。WPF不执行此操作……WPF树通常呈现为一个单独的HWND',而它管理z顺序之类的事情。对您来说,这意味着z-order并不总是以您期望的方式工作,而且有些事情您不能使用承载的Windows窗体控件来完成,而您可以使用传统的WPF元素来完成。(实际上有一种方法可以解决这个问题,但它涉及到定期将HWND呈现为内存位图,将该位图呈现为WPF图面,然后将指向WPF图面的事件重定向到底层HWND。这很强大,但很棘手,很难正确处理。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3149514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档