2

我有一个老板希望在 Windows 7 上运行的旧 Windows 移动应用程序。由于它都是 .NET,所以该应用程序在某种程度上可以在 Windows 上运行(我相信它是为 Windows CE 制作的),但它在一个很小的窗口中运行。我想把它搞砸,首先想到的是以某种方式将实际程序转储到 WPF Viewbox 中。这将相当简单,并且不会侵犯任何其他应用程序的大小。

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

4

1 回答 1

2

Viewbox 仅适用于纯 WPF 控件。您不能使用它来放大 WinForms 控件,因为 WinForms 控件对 WPF 的缩放变换一无所知。

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

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

您最好的选择可能只是在表单设计器中打开每个表单并让所有控件变大。在一个大型应用程序中可能需要做很多工作,但没有什么说你必须一次完成所有工作——而且它可能比任何替代方案都少。

于 2012-08-21T02:54:22.497 回答