2012-08-08 110 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

相關問題