c#编写Winform窗体分辨率变低

前段时间在开发一个总线舵机调试程序,开发环境是Windows10 64位专业版(V1803)和Visual Stuido 2015专业版,电脑屏幕是15.6英寸分辨率1920*1080,采用的是WinForm程序设计方法开发。在程序运行时遇到了这样一个问题,在Visual Studio设计的很清晰的菜单和界面,运行的时候菜单和控件上字体变得很模糊,界面大小也发生了变化。于是上网寻求解决办法,网友给出的解决方案有以下3种:

  1. WinForm对高分屏的支持不好,用WPF程序设计可以解决该问题。(这是一个可行的办法,但是短期内较好的掌握WPF,并用WPF技术重现实现软件不太现实)
  2. 更改窗体的AutoScaleMode属性为Font,并在窗体的构造函数中增加两行代码调整窗体上字体的大小。本人反复尝试,该方法行不通。
  3. 更改程序的配置文件,在里面添加几行代码,使程序运行时自动检测屏幕分辨率,在高分屏时禁用系统缩放。本人查阅了多个博客,其给出的代码都不可用,而且明显是从同一人处复制粘贴的,根本没有经过检验。

  第三种方案的解决思路是正确的,就是要检测屏幕的分辨率,高分屏时禁用系统的缩放,因为现在Win10 高分屏默认字体放大125,这样会导致我们在程序中设计好的界面字体模糊。但是第三种方案所说的添加代码是错误的,微软已经为我们考虑了很多,WinForm默认清单文件里已经加入了对禁用高分屏自动缩放的支持,只是被注释掉了,我们只需要去掉一个小小的注释符,就可以解决这个问题。

以下是具体的步骤:

1.选择当前项目,单击鼠标右键,选择“添加”-“新建项”

c#编写Winform窗体分辨率变低_第1张图片

2.选择应用程序清单文件

c#编写Winform窗体分辨率变低_第2张图片

3.打开刚才建立的清单文件,找到下图中所示语句,取消这段文字的注释,也就是删除红线框中的两行,然后保存再运行即可。

c#编写Winform窗体分辨率变低_第3张图片

如果你的vs版本没有这几行代码,那添加上:


    
        true

    

 

重新生成项目,即可看见窗体分辨率提高到1080P了

如果重新生成后依然没有提高分辨率,那么就重启下VS环境就可以了。

c#编写Winform窗体分辨率变低_第4张图片

你可能感兴趣的:(c#)