解决方案
首先最简单的解决方案:每次VS显示这个信息栏的时候,点选 “使用100%缩放比例重新启动 Visual Studio ” 选项;
无可奈何的解决方案:将Win10缩放设置改回100%(奇怪,我为什么要说这个方案。。划掉);
最佳解决方案:设置 Visual Studio 软件忽略Windows10的DPI显示缩放;
最佳解决方案
可行性
方案3之所以可行就是因为Visual Studio 本身支持Win10的DPI缩放,表征为在1K以上分辨率的显示器如2K、4K显示器上显示软件时能以正常大小显示(放大了);
但是VS的WinForm窗体设计器却不支持自动HDPI缩放,其表征为在设计窗体时,各种窗体、控件、布局都是按照未缩放的状态(1K分辨率显示器的效果)显示的;(详细可搜索查看"DPI虚拟化")
这样的总体效果就是:(VS软件被放大了,) WinForm窗体未放大,编译好的WinForm窗体程序又被放大了,所以看起来比设计时的窗体要大,控件布局也不一样。
操作步骤
(1)打开注册表编辑器(WIN+R组合键,输入regedit)
(2)导航
计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
(3)新建字符串值
(4)填写数值名称(最好找到自己的VS启动程序的路径,黏贴进去)
根据你使用的Visual Studio版本,使用不同的值(对应更改2017/2019,C/D盘等等)
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe
(5)填写数值数据(注意填写完整,少一个字符多一个字符都不行)
DPIUNAWARE
填写好了大概长这样:(注意图中数据值少了一个'E')
(6)验证结果
关闭所有VS窗口;
重新启动VS,并打开一个窗体设计器;
总结
可以看到这种方法还是比较简单有效的,对于经常用VS设计窗体的你来说肯定方便了许多;
不足之处就是软件整体不缩放了,那么就会出现 在HDPI(分辨率大于1K)的显示器上显示 时,VS软件的文本、控件等等比较小的问题,对操作和使用有一定的影响;
①第2点的问题只影响了VS这个软件,你使用其它软件一点都不影响;
②而且如果你做完了这个项目就不怎么使用WinForm窗体设计器了,那你直接删了那个注册表字符串就可以了,甚至你不删,改一个数值数据(如图6)的字符都能使VS恢复使用Win10的缩放;
③另外,你还能点击 “ 使用自动缩放比例重新启动 Visual Studio ” 选项;
如果你用其它软件的时候也遇到类似的问题,都可以通过这个问题解决;
当然真正最佳的解决方案应该是等微软公司把Visual Studio的WinForm窗体设计器也适配Windows10的自动缩放功能了;毕竟现在高分辨率显示器已经大面积普及了;