2012-08-08 111 views
2

我有一个旧的windows移动应用程序,老板想在Windows 7上运行。因为它都是.NET,所以应用程序在Windows上运行(我相信它是为Windows CE制作的),但它运行在一个小型窗口。我想把它吹起来,首先想到的是以某种方式将实际的程序转储到WPF Viewbox中。这将是相当简单的,不会侵犯任何其他应用程序的大小。有没有办法直接在WPF应用程序中运行winforms exe文件?

搜索所有我看到的是WindowFormsHost用于将WPF中的WinForms usercontrols,但没有关于完整的可执行文件。有谁知道是否有办法做到这一点?

+1

你有源码还是只有exe文件? – 2012-08-08 18:44:48

+0

@AndersForsgren我有源,但它是一个大程序 – cost 2012-08-08 20:11:11

回答

2

Viewbox仅适用于纯WPF控件。你不能用它来放大一个WinForms控件,因为WinForms控件不知道WPF的缩放转换。

您可以尝试使用WinForms Control.DrawToBitmap方法一起破解一些东西:将WinForms控件绘制到位图,然后放大位图并将其绘制到屏幕上。 (不需要WPF;您可以在纯WinForms中执行此操作。)但DrawToBitmap有serious limitations。如果您希望自己的应用程序响应鼠标或键盘,则需要做大量工作,将鼠标和键盘事件转发给原始控件,自己跟踪焦点等。理论上可能,但几乎可以肯定不实用。

可能将.NET EXE加载到另一个.NET EXE中。 EXE就像DLL一样是程序集,您可以使用Assembly.Load加载它们,甚至可以在解决方案资源管理器中添加参考。但你不需要做任何奇特的事情;您可以轻松地将所有源代码编译到主机EXE中。

最好的办法可能就是在表单设计器中打开每个表单,并将所有控件放大。在大型应用程序中可能需要很多工作,但没有什么说你必须一次完成所有工作,而且这可能比其他任何方法都少。

+0

是的,这是我最终完成的。它有很多窗口,需要一段时间。在我的大脑开始融化之前,我每天都会完成一些工作。 – cost 2012-08-23 17:35:32

相关问题