WinForm分辨率適應-高DPI自動縮放


問題背景

最近在寫一個 WinForm 程序,在不同系統終端測試的時候發現原本在 Windows 7 系統上能夠高清顯示的程序,在搭配了更高分辨率屏幕的 Windows 10 系統終端上出現了界面模糊的現象,查閱資料並多次嘗試后終於解決了這個問題,記錄在此。

問題原因

WinForm 對高分辨率屏幕的適配並不是很好,當分辨率較高時,Windows 系統會將程序里面的字體進行縮放,在 Windows 10 系統尤其嚴重,這將導致程序的界面大小變化,字體也會變得模糊。

解決方法

知道了導致程序模糊的原因,找到相應的解決方法就很簡單了,我們只需要讓程序感知 DPI ,當 DPI 較高時禁止 Windows 對其進行自動縮放。

注意事項:該方法適用於 .NET Framework 版本大於等於4.5的程序。

具體步驟如下:

  1. 右鍵項目,添加應用程序清單文件
    添加應用程序清單文件

  2. 應用程序清單文件中的部分代碼取消注釋。
    取消注釋部分代碼

  3. 在程序配置文件(app.config)的appSettings節點下添加如下代碼

    <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
    

    修改程序配置文件

  4. 重新編譯生成項目,打開程序查看效果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM