加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

如何解决C#应用开发时,Win10缩放导致的字体模糊问题?

03/07 09:50
1410
阅读需 4 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

现在我们的笔记本电脑分辨率很高,基本上能达到1920*1080以上,目前普遍使用的显示器都已经达到了2K到4K的级别。

但是因为我们的笔记本的屏幕小,在非常高的分辨率下,一切看着都很小,尤其是文字,根本看不清,所以Win10很人性化的提供了屏幕缩放功能,一般默认放大比例为150%、200%等,如图所示:

在这种情况下,我们用C#开发的Winform窗体显示就有问题了,文字和图像都变得模糊了。

1. 设置Form的DPI模式

首先,我们要设置所有的Form窗口的AutoScaleMode为Dpi模式。

可以使用代码在Form初始化时设置AutoScaleMode属性。

this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;

或者在每个窗口的属性列表里进行修改。

2. 添加应用程序清单文件

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

如果窗口显示默认的 .cs 的类文件,可以点击显示所有模板。

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

3、编辑生成的app.manifest文件,取消注释其中的 assembly/compatibility/application 下的Windows 10 GUID。

<!-- Windows 10 --><supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />

然后在 App.config 底下加入:

<System.Windows.Forms.ApplicationConfigurationSection><add key="DpiAwareness" value="PerMonitorV2" /></System.Windows.Forms.ApplicationConfigurationSection>

之后,运行你的窗体,就可以看到,整个UI以及字体都非常的清晰,下面是对比图:

全文完,如果觉得写得不错,那就点个赞或者“在看”吧,最好能加个星标,因为微信的规则改了太多,多谢阅读

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
SN74LVC244APWR 1 Texas Instruments 8-ch, 1.65-V to 3.6-V buffers with 3-state outputs 20-TSSOP -40 to 125

ECAD模型

下载ECAD模型
$0.44 查看
DS24B33S+ 1 Maxim Integrated Products EEPROM, 4KX1, Serial, CMOS, PDSO8, 0.208 INCH, ROHS COMPLIANT, SOP-8
$2.89 查看
AT28C010E-12JU 1 Atmel Corporation EEPROM, 128KX8, 120ns, Parallel, CMOS, PQCC32, GREEN, PLASTIC, MS-016AE, LCC-32
$43.8 查看

相关推荐

电子产业图谱

多年硬件从业经验,专注分享从研发到供应链,再到精益制造过程中的经验和感悟!