当前位置: 首页 > news >正文

使用100%缩放比例重新启动Visual Studio 界面模糊的解决方案

问题描述

建议:如果是刚开始写WinForm项目 ,建议刚开始就去进行一个替换 ,要不然后面会很麻烦的 ,不仅要计算size 还要去 计算 location 的值

昨天碰到了这个问题 ,当时设置完之后界面就非常的模糊 ,虽然说界面变大了 ,但是看着异常难受 ,很模糊

解决方案

  1. 新建应用程序清单文件(Application Manifest File)​ , 保持默认名称 app.manifest,点击添加。

  2. 找到这段代码:

    image

    <application xmlns="urn:schemas-microsoft-com:asm.v3"><windowsSettings><dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware></windowsSettings>
    </application>
    
  3. 替换DPI相关配置:

    <application xmlns="urn:schemas-microsoft-com:asm.v3"><windowsSettings><dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware><!-- Windows 10 1703+ 支持 Per-Monitor v2 --><dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">permonitorv2,permonitor</dpiAwareness><longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware> <!-- 保留长路径支持(如果需要) --></windowsSettings>
    </application>
    
  4. 保存文件,重新生成项目即可生效。

替换方案(尺寸不一致解决方案)

因为你刚替换完 ,尺寸与原来的是不一致的 ,所以就需要进一步的替换原先的尺寸


在 DPI 感知的应用程序中,当系统缩放比例从 100% 变为 150% 时,界面元素的实际像素尺寸计算遵循 “逻辑尺寸 × 缩放比例 = 实际像素尺寸” 的规则。以下是具体说明:

假设在 100% 缩放时,某按钮的逻辑尺寸为宽度 100 像素、高度 30 像:

  • 100% 缩放(系数 1.0):实际像素尺寸 = 100 × 1.0 = 100 像素(宽),30 × 1.0 = 30 像素(高)。
  • 150% 缩放(系数 1.5):实际像素尺寸 = 100 × 1.5 = 150 像素(宽),30 × 1.5 = 45 像素(高)。

举例说明:尺寸计算表(基准:89 × 31)

缩放比例 缩放系数 实际宽度(像素) 实际高度(像素) 计算逻辑
100% 1.0 89 31 89 × 1.0 = 89;31 × 1.0 = 31
150% 1.5 133.5 46.5 89 × 1.5 = 133.5;31 × 1.5 = 46.5

在 WinForms 应用中开启 DPI 感知后,系统缩放比例从 100% 变为 150% 时,Location​(控件位置,即 X、Y 坐标)的计算核心遵循 “基准逻辑坐标 × 缩放系数(150% = 1.5)= 实际像素坐标” 规则,同时需结合 WinForms 的 DPI 适配机制(尤其是 .NET Framework 4.6+ 或 .NET Core 3.0+ 的高 DPI 支持),具体细节如下:

一、核心计算逻辑(手动计算场景)

若需手动计算 Location,需明确两个前提:

  1. 基准坐标​:100% 缩放时,控件在代码中定义的 Location​(如 new Point(20, 30)​,即 X=20,Y=30),这是 “逻辑坐标”,对应 100% 缩放时的实际像素。
  2. 缩放系数​:系统缩放比例对应的系数(100% = 1.0,150% = 1.5)。

计算公式::实际像素坐标(150% 缩放)= 基准逻辑坐标 × 1.5

示例:

假设 100% 缩放时控件基准 Location​ 为 (14, 6)​(X=14,Y=6):

  • 100% 缩放(系数 1.0):实际坐标 = (14×1.0, 6×1.0)​ = (14, 6)(像素)。
  • 150% 缩放(系数 1.5):实际坐标 = (14×1.5, 6×1.5)​ = (21, 9)(像素)。

写到最后

当然还有像这种自动适配的 ,不需要手动计算 ,就比如DPI自动缩放功能 ,但是我目前还不会这个 ,想着项目刚开始 ,就先以最简单的开始做起 ,也避免了代码中诸多的麻烦所在

http://www.hskmm.com/?act=detail&tid=23976

相关文章:

  • 某工程师入职华为,职级比较高,但还看不懂代码,有点尴尬
  • 使用Silobase在几分钟内快速部署后端API
  • 【光照】[各向异性]在UnityURP中的实现
  • 基于HAL库和中断的LED流水灯
  • 从衡阳麻衣事件到AI元人文:用户端元人文实践的进化路径研究——声明ai研究
  • 5_flutter UI框架选型
  • 4_查询flutter版本信息
  • 3_flutter简单教程
  • 如何给 Claude 中的网页做截图
  • 2_gradle配置加速
  • AI元人文:岐金兰《悬鉴》起源
  • 九月回忆
  • PWN手成长之路-07-bjdctf_2020_babystack2-栈溢出+整型溢出
  • jellyfine-code1008播放器无法实例化错误、群晖系统分区空间不足解决办法
  • 将GitHub项目克隆后在本地修改好后如何同时提交到GitHub和Gitee
  • MySQL.Data.DLL 官网下载方法 2025
  • 宣泄情绪
  • 执行一次 git commit 后,本地的这次提交能同时推送到 GitHub 和 Gitee 两个远程仓库
  • 【一起学rust | 基础篇】环境配置
  • QWEN
  • 趣题记
  • Day25捕获与抛出异常
  • 『回忆录』高二上第一次月考——压力下的崛起,意外中的突破
  • 免费代理池
  • 白箱算力突破:WBUC与「可能性工程」的诞生(AI元人文系列文章)
  • Linux 中 awk命令提取偶数列数据
  • 『随笔』0919
  • 主要编码规范
  • Docker 安装配置 OnlyOffice - Higurashi
  • 什么是计算数学?