2018-06-23 14:40:43
前段時間在開發一個坐標轉換程序,開發環境是Windows10 64位專業版(V1803)和Visual Stuido 2015社區版,電腦屏幕是15.6英寸分辨率1920*1080,采用的是WinForm程序設計方法開發。在程序運行時遇到了這樣一個問題,在Visual Studio設計的很清晰的菜單和界面,運行的時候菜單和控件上字體變得很模糊,界面大小也發生了變化。於是上網尋求解決辦法,網友給出的解決方案有以下3種:
- WinForm對高分屏的支持不好,用WPF程序設計可以解決該問題。(這是一個可行的辦法,但是短期內較好的掌握WPF,並用WPF技術重現實現軟件不太現實)
- 更改窗體的AutoScaleMode屬性為Font,並在窗體的構造函數中增加兩行代碼調整窗體上字體的大小。本人反復嘗試,該方法行不通。
- 更改程序的配置文件,在里面添加幾行代碼,使程序運行時自動檢測屏幕分辨率,在高分屏時禁用系統縮放。本人查閱了多個博客,其給出的代碼都不可用,而且明顯是從同一人處復制粘貼的,根本沒有經過檢驗。
第三種方案的解決思路是正確的,就是要檢測屏幕的分辨率,高分屏時禁用系統的縮放,因為現在Win10 高分屏默認字體放大125,這樣會導致我們在程序中設計好的界面字體模糊。但是第三種方案所說的添加代碼是錯誤的,微軟已經為我們考慮了很多,WinForm默認清單文件里已經加入了對禁用高分屏自動縮放的支持,只是被注釋掉了,我們只需要去掉一個小小的注釋符,就可以解決這個問題。
以下是具體的步驟:
1.選擇當前項目,單擊鼠標右鍵,選擇“添加”-“類”
2.選擇應用程序清單文件
3.打開剛才建立的清單文件,找到下圖中所示語句,刪除紅線框中的兩行,然后保存再運行即可。