.NET Winform桌面应用程序禁用dpi缩放

本文内容适用:.NET6 ~ .NET9

.NET8 Winform桌面应用程序在笔记本电脑运行,会发现图片不能正常显示,出现缩小等现象,严重影响用户体验。

没有禁用dpi缩放

下图中图标,包括登陆、取消两个按钮的图标显示不正常:

下图的背景图片以及所有按钮图标显示不正常:

禁用dpi缩放效果:正常

解决方案

禁用dpi缩放

Program.cs

复制代码
//禁止dpi缩放
Application.SetHighDpiMode(HighDpiMode.DpiUnaware);
WindowsFormsSettings.LoadApplicationSettings();
WindowsFormsSettings.AllowDpiScale = false;

app.manifest 清单文件

在主程序添加 app.manifest 清单文件

设置 dpiAware = false

HTML全选

复制代码
<application xmlns="urn:schemas-microsoft-com:asm.v3">
  <windowsSettings>
    <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</dpiAware>
    <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
  </windowsSettings>
</application>

专注.NET技术、C/S架构开发框架软件

C/S框架网 - 开发框架文库

appsettings.json

复制代码
{
  "EnableWindowsFormsHighDpiAutoResizing": false,
}

相关文章

CSFrameworkV6.1旗舰版快速开发框架

通用进销存+ERP系统基础框架(C#+.NET7+EF)Demo下载

相关推荐
hez201015 小时前
在 .NET 上构建超大托管数组
c#·.net·.net core·gc·clr
雨落倾城夏未凉6 天前
第四章c#方法-参数数组和可选参数(16)
后端·c#
唐青枫7 天前
线程不是越多越快:C#.NET Thread 生命周期、同步与后台工作线程实战
c#·.net
唐青枫8 天前
别只会反射:C#.NET Emit 动态生成代码实战详解
c#·.net
Caco_D8 天前
一行代码抓遍全网 20 个热榜!Aneiang.Pa 4.0 发布 — 极简 .NET 爬虫库
爬虫·.net
咕白m6258 天前
.NET 环境下 Word 超链接批量提取方案
c#·.net
用户91721561902118 天前
C# 通信协议增量解析:用状态机处理半包和粘包
c#
小码编匠9 天前
C# 工控上位机必备:数据转换工具类与十个核心模块
后端·c#·.net