C# WinForm在高解析度下介面模糊問題的解決
阿新 • • 發佈:2020-08-01
前言
昨天剛搞定了DevExpress,今天就遇到了之前遇到過的一個問題,那就是WinForm在高解析度下介面模糊。我的開發環境是Windows10 64位和VS2010,電腦螢幕解析度為1920*1080,採用的是WinForm程式設計方法開發。在程式執行時遇到了這樣一個問題,在VS設計的很清晰的選單和介面,執行的時候選單和控制元件上字型變得很模糊,介面大小也發生了變化。於是上網尋求解決辦法,網友給出的解決方案有以下3種。
- WinForm對高分屏的支援不好,用WPF程式設計可以解決該問題。(這是一個可行的辦法,但是短期內較好的掌握WPF,並用WPF技術重現實現軟體不太現實)
- 更改窗體的AutoScaleMode屬性為Font,並在窗體的建構函式中增加兩行程式碼調整窗體上字型的大小。本人反覆嘗試,該方法行不通。
- 更改程式的配置檔案,在裡面新增幾行程式碼,使程式執行時自動檢測螢幕解析度,在高分屏時禁用系統縮放。
第三種方案的解決思路是正確的,就是要檢測螢幕的解析度,高分屏時禁用系統的縮放,因為現在Win10 高分屏預設字型放大125,這樣會導致我們在程式中設計好的介面字型模糊。
具體步驟
- 選擇當前專案,單擊滑鼠右鍵,選擇【新增】|【類】;
- 選擇【應用程式清單檔案】;
- 開啟剛才建立的清單檔案,新增下面的程式碼;
- 儲存執行,發現修復了介面模糊問題。
<application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> </windowsSettings> </application>
PS:有時候按照上面步驟可能不成功,關掉程式重新開啟執行後發現解析度已協調,親測有效。