解决Winform程序在不同分辨率系统下界面混乱

本文分析了Winform程序在非默认DPI设置下界面混乱的原因,并探讨了尝试设置AutoScaleMode未解决问题的难点。通过借鉴Web开发中像素单位的思路,提出在Winform中使用像素定位以适应不同DPI,实现界面的清晰缩放,从而有效解决了界面显示问题。
摘要由CSDN通过智能技术生成

问题分析:

         产生界面混乱的主要原因是,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程序中的常用单位是像素&#x

  • 9
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值