歡迎您光臨本站 註冊首頁

VisualStudio2019中為.NET Core WinForm App啟用窗體設計器

←手機掃碼閱讀     火星人 @ 2020-05-03 , reply:0

當我們在使用 Visual Studio 2019 非預覽版本開發 Windows Forms App (.NET Core) 應用程式時是不能使用窗體設計器的。即使在窗體檔案上右擊選擇「顯示設計器」選單,仍舊只能看到程式碼,無法開啟窗體設計器。
根據微軟開發者部落格的描述,我們可以使用 Visual Studio 2019 預覽通道,將 Visual Studio 2019 更新至 16.6 來啟用設計器(參見:Updates on .NET Core Windows Forms designer)。
在不啟用預覽通道的情況下,我們仍然可以透過更改專案檔案來讓專案支援窗體設計器。
當我們新建一個 .NET Core Windows Forms 程式時,我們的專案檔案(*.csproj)通常包含以下內容:

WinExenetcoreapp3.1true


TargetFramework 標籤標識我們程式的目標框架是 .netcoreapp3.1 。如果我們的專案同時可以支援 .NET Framework 那麼就可以在 Visual Studio 中使用設計器,可以使用 TargetFrameworks 標籤來讓專案支援多個目標框架:

WinExenet472;netcoreapp3.1true


儲存更改後,Visual Studio 可能會提示重新載入。確認重新載入,窗體設計器就可以使用了:
透過為專案增加 .NET Framework 目標框架來啟用設計器
做完這一步,我們的程式碼會無法透過編譯。這是因為專案中使用了一個新的 API : SetHighDpiMode ,但是 .NET Framework 4.7.2 並不支援。可以透過條件編譯來限定對 SetHighDpiMode 的呼叫僅在 .NET Core APP 下生效。當目標框架是 .NET Core 時,生成系統可以識別 NETCOREAPP 處理器符號(感謝 @麥殼餅 的提示)。對 Program.cs 檔案中 Main 方法的程式碼稍作修改即可編譯透過:
///

/// The main entry point for the application. ///

[STAThread] static void Main() { #if NETCOREAPP Application.SetHighDpiMode(HighDpiMode.SystemAware); #endif Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new FrmMain()); }
點選「除錯」按鈕的下拉項對目標框架進行切換:
切換除錯專案的目標框架
程式執行起來後,效果令人滿意。


[火星人 ] VisualStudio2019中為.NET Core WinForm App啟用窗體設計器已經有448次圍觀

http://coctec.com/docs/developer/show-post-232639.html