admin管理员组文章数量:1655376
目录
一、问题
二、解决方案
三、最佳解决方案
(1)打开注册表编辑器(WIN+R组合键,输入regedit)
(2)导航
(3)新建字符串值
(4)填写数值名称(最好找到自己的VS启动程序的路径,黏贴进去)
(5)填写数值数据(注意填写完整,少一个字符多一个字符都不行)
(6)验证结果
四、总结
一、问题
可以看到当你打开一个WinForm窗体设计器的时候,设计器上方出现一个黄色信息警示条,那么你肯定是Windows10显示设置里设置了非100%的DPI缩放(HDPI缩放),那么你设计好的窗体界面在运行时就会出现大小、布局等等特征都不一致的情况,甚至出现控件重叠的问题。
- 你不想把显示设置改回100%,既然设置了缩放肯定是有原因的;
- 你想将VS单独设置100%的缩放,但Windows10好像没有这个设置选项;
- 你经常使用WinForm窗口设计器,又不想每次打开项目,再点击,再重启等等一系列繁琐操作(注意:一定是WinForm窗口设计器,至于为什么,看下面的可行性分析);
二、解决方案
- 首先最简单的解决方案:每次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窗体程序又被放大了,所以看起来比设计时的窗体要大,控件布局也不一样。
2. 操作步骤
(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的自动缩放功能了;毕竟现在高分辨率显示器已经大面积普及了;
个人经验,不足之处还请指正!
官方文档请参阅:https://docs.microsoft/en-us/visualstudio/designers/disable-dpi-awareness?view=vs-2019#add-a-registry-entry
版权声明:本文标题:Windows10显示缩放导致Visual Studio 2017 WinForm窗体设计器在高DPI下设计时界面布局大小问题 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1729688942a1210005.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论