winforms - 如何修复 Visual Studio 2017 Windows 窗体的 DPI 缩放问题
问题描述
自从我在 2015 年购买了这款配备 4k 显示屏的笔记本电脑以来,我就一直遇到这个问题。经过大量的努力,我设法解决了这个问题,但我已经厌倦了。VS2017 应该是 DPI 感知的,因此我不希望在创建简单的 MDI 父表单和运行应用程序时出现任何问题。但令我沮丧的是,toolStrip 中的图标(只是 MDI 父窗体中的标准图标)缩放得非常可怕。当我创建一个带有按钮的表单时,它在 Visual Studio 2017 设计器中看起来很好,我运行应用程序并加载表单时,按钮文本没有完全显示。我的显示设置如下:
- 分辨率:3840x2160
- 缩放 250%(在显示设置中),因为在 100% 时一切都无法读取
我试图找到解决方案,但我能找到的唯一可行的事情是通过注册表将我的视觉工作室设计器设置为 dpi-unaware(链接在这里)
帮助任何人?
更新当我添加一个设置为关闭 DPI 感知的新 MDI 表单时,除了 Visual Studio 本身(模糊)之外,一切看起来都很好。
解决方案
在 Visual Studio 2017 上使用 Windows 窗体(Windows 窗体设计器)时,我遇到了类似的问题,但我认为在 Visual Studio 2019 上会是一样的。
从此处的Microsoft 文档中,有一个提示可以禁用缩放/DPI 感知功能。
如果您更喜欢从命令行管理设置,请将其作为命令行参数
devenv.exe
以/noscale
在 100% 缩放模式下运行。
所以,基本上,我只是在桌面上创建了一个到 Visual Studio ( ) 的快捷方式,并在快捷方式目标字段上devenv.exe
添加了参数,如下所示:/noscale
"...\path\to\IDE\devenv.exe" /noscale
因此,每次通过快捷方式启动 Visual Studio 时,它总是以 100% 缩放模式启动。如果您使用高分辨率屏幕 (high-dpi) 屏幕,您会注意到 Visual Studio 文本因此会显得有些模糊。
推荐阅读
- javascript - 从 CSS 径向渐变的顶行像素获取颜色值
- bash - 我的猜字游戏 shell 脚本有什么问题?
- php - 定义另一个实体属性时如何使用实体属性
- android - 如何解决 ionic3 文件传输中的 ssl 问题?
- python - 如何通过使用 numpy einsum 和 numexpr 计算核函数来提高性能?
- python - 如何在函数中减去全局变量
- c# - C# 是否有办法将双精度数组转换为类似于 C++ 转换为 char* 的字符串?
- javascript - 如何从量角器中使用 browser.executeScript 执行的 js 获取返回值?
- javascript - 如何在 React 中通过 ID 获取特定问题
- r - 当较大的行没有出现在文件的早期时,R data.table fread 无法以不规则的列长度读取