如何解决Visual Studio 2017 Windows窗体的DPI缩放问题

时间:2018-08-09 08:34:18

标签: winforms visual-studio-2017 windows-10

自从我在2015年购买具有4k显示屏的笔记本电脑以来,我就一直遇到这个问题。尽管付出了很多努力,我还是设法解决了这个问题,但是我对此已经感到厌倦。 VS2017应该是DPI感知的,因此在创建简单的MDI父窗体并运行应用程序时,我不会遇到任何问题。但是令我感到沮丧的是,toolStrip中的图标(只是MDI父窗体中的标准图标)被可怕地缩放。 当我创建一个带有按钮的表单时,在Visual Studio 2017 Designer中看起来还不错,并且运行该应用程序并加载该表单时,按钮文本没有完全显示出来。 我的显示设置如下:

  • 分辨率:3840x2160
  • 缩放250%(在显示设置中),因为在100%时,所有内容都不可读

我试图找到解决方案,但唯一可以找到的方法就是将我的Visual Studio设计器设置为通过注册表(链接here)不进行dpi识别

帮助任何人吗?

更新:当我添加DPI-awareness为OFF的新MDI表单时,除Visual Studio本身(模糊)外,其他一切看起来都还可以。

2 个答案:

答案 0 :(得分:1)

我在 Visual Studio 2017 上使用 Windows 窗体(Windows 窗体设计器)时遇到了类似的问题,但我认为在 Visual Studio 2019 上也是一样的。

Microsoft 文档 here 中提供了禁用缩放/DPI 感知功能的提示。

<块引用>

如果您更喜欢从命令行管理设置,devenv.exe/noscale 作为命令行参数以 100% 缩放运行 模式。

所以,基本上,我只是在桌面上创建了一个到 Visual Studio 的快捷方式 (devenv.exe),并在快捷方式 Target 字段上添加了参数 /noscale,如下所示:

"...\path\to\IDE\devenv.exe" /noscale

因此,每次通过快捷方式启动 Visual Studio 时,它将始终以 100% 缩放模式启动。如果您使用高分辨率屏幕(high-dpi)屏幕,您会注意到 Visual Studio 文本会因此显得有点模糊。

答案 1 :(得分:0)

您应该更改设置,以便程序在不同计算机上运行时不会有任何区别。 转到项目的属性页,然后转到“清单工具”,然后转到“输入和输出”。将DPI意识更改为“无” enter image description here