C# Win10縮放導致Winform字體模糊的解決方法


問題描述

現在的筆記本電腦分辨率很高,基本上能達到1920*1080以上,因為筆記本的屏幕小,在這樣的分辨率下一切看着都很小,尤其是文字,根本看不清,所以Win10很人性化的提供了屏幕縮放功能,一般默認放大比例為150%、200%等,如圖所示:

在這種情況下,我們用VS開發的Winform窗體顯示就有問題了,文字和圖像都變得模糊了

解決方案

前置步驟

設置所有的Form窗口的AutoScaleModeDpi模式

方法一【添加應用程序清單文件】

推薦使用該方法

1、解決方案資源管理器中,在當前項目上【右鍵】→ 【添加】→【新建項】

2、找到【應用程序清單文件(僅限Windows)】→【添加】

3、編輯生成的app.manifest文件,找到<application xmlns="urn:schemas-microsoft-com:asm.v3">去掉注釋

4、保存文件,運行你的程序,窗體上的一切都清晰了!!

方法二【調用Windows API】

打開Program.cs文件,在Main()方法中添加Windows API函數的調用,如下:

    static class Program
    {
        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            if (Environment.OSVersion.Version.Major >= 6)
            {
                SetProcessDPIAware();
            }
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }

        [System.Runtime.InteropServices.DllImport("user32.dll")]
        private static extern bool SetProcessDPIAware();
    }


免責聲明!

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



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