天天看点

C# Win10缩放导致Winform字体模糊的解决方法

问题描述

现在的笔记本电脑分辨率很高,基本上能达到1920*1080以上,因为笔记本的屏幕小,在这样的分辨率下一切看着都很小,尤其是文字,根本看不清,所以​

​Win10​

​很人性化的提供了屏幕缩放功能,一般默认放大比例为150%、200%等,如图所示:

C# Win10缩放导致Winform字体模糊的解决方法

在这种情况下,我们用​

​VS​

​​开发的​

​Winform​

​窗体显示就有问题了,​文字和图像都变得模糊了​

解决方案

前置步骤

设置所有的​

​Form​

​​窗口的​

​AutoScaleMode​

​​为​

​Dpi​

​模式

C# Win10缩放导致Winform字体模糊的解决方法

方法一【添加应用程序清单文件】

​推荐使用该方法​

1、解决方案资源管理器中,在当前项目上【右键】→ 【添加】→【新建项】

C# Win10缩放导致Winform字体模糊的解决方法

2、找到【应用程序清单文件(仅限Windows)】→【添加】

C# Win10缩放导致Winform字体模糊的解决方法

3、编辑生成的​

​app.manifest​

​​文件,找到​

​<application xmlns="urn:schemas-microsoft-com:asm.v3">​

​去掉注释

C# Win10缩放导致Winform字体模糊的解决方法

方法二【调用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();
    }