解决c#在高分辨率缩放下字体模糊

解决c#在高分辨率缩放下字体模糊

众所周知在Windows笔记本上大多启用文本缩放125%,150%等,导致很多应用字体模糊。

一、现象描述

在上一次写过网易云音乐缓存转换器后,我发现生成的.exe文件字体十分模糊,字体边缘不够锐利:

二、解决方案

在参考了许多资料后,找到了有效方案,微软已经在C#(Winform)开发中内置了对于高分辨率的适配

  1. 解决方案资源管理器中右键项目名称,点击添加-类

  1. 选择应用程序清单文件

  1. 打开清单文件,找到以下代码,并将除中文注释外的部分解除注释。
1
2
3
4
5
6
7
8
9
10
<!-- 指示该应用程序可以感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需
选择加入。选择加入此设置的 Windows 窗体应用程序(目标设定为 .NET Framework 4.6 )还应
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。-->

<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>

使用此配置生成的Winform程序就不会有字体模糊问题了。

三、效果展示

作者

Luan Blesson

发布于

2020-09-09

更新于

2023-02-22

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×