解決winform(C#)界面在高分辨率(DPI)屏幕下字體模糊問題


指定進程的默認 DPI 識別有兩種主要方法:

1 ) 通過應用程序清單設置

2 ) 通過 API 調用以編程方式

為進程 (Windows 設置默認 DPI 感知) - Win32 apps | Microsoft Docs

 

第一種方法:通過應用程序清單設置

1)為應用程序添加app.manifest清單文件

添加 app.manifest 的步驟

鼠標右擊工程在菜單中選擇“屬性”,點擊工程屬性的“安全性”標簽,在安全性標簽頁中勾選“啟用ClickOnce安全設置”,並選擇“這是完全可信的應用程序”,保存工程,此時在Properties下已經自動生成了app.manifest文件。

2)打開 app.manifest ,取消紅框的注釋即可

 

 

第一種方法:通過 API 調用以編程方式

 在Program.cs 中添加紅框的代碼,DPI函數需在窗口打開函數之前

namespace ui
{
    internal static class Program
    {
        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        [STAThread]
        static void Main()
        {

            if (Environment.OSVersion.Version.Major >= 6)
                SetProcessDPIAware();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());


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

 


免責聲明!

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



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