有没有可能同时包含Winforms和WPF的项目?
比方说,一个WinForm项目被一步一步地转换(一个窗体一个窗体地)在一个WPF项目中,是否有可能在一个按钮上打开一个Winform,而在另一个按钮上打开一个WPF?
发布于 2010-06-30 21:19:51
是。你必须选择一种技术来显示你的应用程序中的每个物理窗口和控件,但没有理由不能混合和匹配。
例如:
发布于 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
发布于 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
。这很强大,但很棘手,很难正确处理。)
https://stackoverflow.com/questions/3149514
复制相似问题