Win10 下如何单独给程序设置 DPI 缩放

Win10 下如何单独给程序设置 DPI 缩放,第1张

1、从开始菜单里点击 设置。

2、选择 系统。腔李

3、将缩放比例调整为嫌圆谈100%,然后注销,再次进入该界面,点击 高级显示设置。

4、点击 文本芹碰和其他项目大小调整的高级选项。

5、调整缩放为 125%(或者更高),确定,应用,再次注销后,即可看到效果。

如果您需要设置软件DPI兼容,使用如下两个方式可以完成:

方法一:在桌面空白处点击右键,选择“显示设置”,将“更改文本、应用和其它项目的大小”改为100%。这样显示会最清晰,但是字体会变小,不建议在15英寸以下尺寸的屏幕上使用(轮伏注意:不同版本的Windows10系统设置路径有所不同,请以实际版本为准)。

方法二:点击鼠标慧桐冲右键,选择“属性”,在“兼容性”选项前歼卡中,勾选“高DPI设置时禁用显示缩放”。此方式虽然能禁用程序界面DPI缩放的功能,但也有可能会导致来程序界面文字选项错位等现象。

问题分析:

       产生界面混乱的主要原因是,winform程序的坐标是基于点(Point)的,而Point又与DPI相关,具体就是

       一英寸 =72Points

一英寸 =  96pixels96DPI是windows的默认DPI,当它被用户更改后,可能就会导致界面与设计之初产生了错乱。

     在网上搜索相关袭庆乎资料后,试着将this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi 但是经实测后,发现仍然没有解决问题:有些界面甚至显示不全;有些控件甚至会被“截断”或完全不显示。

     原因是:默认情况下winfrom的Font单位是Point,最拍悉终显示在界面上的尺寸将根据DPI设置自动变化,可以表示为公式: Point / 72 * DPI = Pixel 按照MSDN的解释,上述设置比较适合关心程序的可视区域及控件文字在不同的DPI下总是显示设计时的大小,而不用关心程序界面的绝对大小的情况。

解决办法:

      后来想到web程序中的常用单位是像素(pixel),在不同的机器上也能很好地呈现网页布局。在winform程序中使用像素来定位即可解决。

      在winform中差渣实现该计量单位,仅需要在Form的的构造函数中作如下设置即可:

[csharp] view plain copy private void InitializeComponent()   {                           //设定按字体来缩放控件               this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font               //设定字体大小为12px                    this.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134)))   }  

      这样设置之后,在不同的DPI下,界面将整体缩放而不会凌乱,利用的就是DPI本身的特性。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12326250.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存