我刚刚升级到 4k 显示器,据说 Visual Studio 应该能够很好地处理高 dpi 显示器。但它对我来说不起作用,我不确定为什么。我在 Visual Studio 2015 和 2017 中遇到了同样的问题。
在下面的屏幕截图中(从 Paint.Net 中的放大屏幕截图中获取,因此可以看到各个像素划分),我将 Visual Studio 窗口与 Chrome 重叠,您可以看到 ClearType 文本以较低的分辨率呈现,然后使用 Visual Studio 缩放,导致彩色像素加倍,非常难看,而在 Chrome 中,文本看起来很棒。
这使得代码极其在 Visual Studio 中很难阅读/编辑,因为文本看起来都很模糊。我连接了两个显示器,一个 4k,桌面缩放比例设置为 200%,另一个普通 1080p 显示器,桌面缩放比例设置为 100%。我尝试过一些设置,比如提高 1080p 显示器的缩放比例或更改哪个是主显示器。这些设置都没有任何区别。重启也无济于事。
由于在处理此类问题时没有太多的解决办法,我不知道还能从哪里着手解决这个问题。有什么建议可以解决这个问题吗?
答案1
不幸的是,Visual Studio 仍然不支持每个显示器的 DPI。如果断开第二台显示器的连接,一切都应该可以正常工作。唯一的方法是找到适合两台显示器的 DPI,但由于您有 4K 和 1080p,这可能非常困难。
我有类似的问题(不是 4K,但仍以 200% DPI 运行),最后我只在一台显示器上使用 VS。
可惜微软即使在VS2017中也没有解决这个问题。
答案2
正如 Eric 所说,最好的解决方案是将要使用 VS 的显示器设置为主显示器,然后注销并重新登录。这样,它在该显示器上看起来就会“正确”,而在其他显示器上则模糊不清。我同意他们还没有解决这个问题,这太荒谬了。
更新:我输入完后立即将 VS 2017 更新到 15.3.3,问题似乎已经修复!现在在所有显示器上看起来都很好。
更新2:没关系,如果我将不同的缩放量设置为主要缩放量,它看起来仍然很糟糕。
答案3
另一种选择:您可以添加注册表项以使 Visual Studio DPI 不感知。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\devenv.exe]
"dpiAwareness"=dword:00000000
上述方法有点“未记录”。我做了一些研究,但找不到有关图像文件执行选项键中的 dpiAwareness REG_DWORD 的任何适当文档。将 REG_DWORD 设置为 1 将使 Visual Studio 再次感知 DPI(需要重新启动 Visual Studio)。
注意:当 Visual Studio 不了解 DPI 并且显示缩放有效时,字体和图标可能看起来很模糊,但 WinForms 设计器不会产生任何不必要的副作用。
参考: https://code4ward.net/2016/11/29/visual-studio-winforms-designer-on-highdpi/
答案4
VS2017 及以下版本不支持每个显示器的 DPI 感知。然而, 我曾是通过将我的 4K 显示器设置为主显示器并重新启动我的计算机(也运行 Win 10 v1903,不确定这是否有区别),可以让 VS2017 15.9 正常工作。我没有更改 devenv.exe 上的任何兼容性设置来实现此功能。VS2017 在我的 4K 显示器上并不模糊。
不过,我仍然(在某种程度上)遇到了麻烦,因为我从非 4K 设备通过 RDP 连接到我的 4K 桌面。该问题显然在 VS2019 中得到了真正解决:
如果您曾在具有不同缩放比例的显示器上使用过 Visual Studio,或者远程连接到与主机设备配置不同的计算机,您可能会注意到 Visual Studio 的字体和图标可能会变得模糊,在某些情况下甚至无法正确呈现内容。这是因为 Visual Studio 2019 之前的版本设置为作为系统缩放应用程序进行呈现,而不是作为每个显示器 DPI 感知应用程序 (PMA)。