C#不同操作系统下,界面大小不一的原因

在不同的操作系统版本或语言版本之间,系统的默认字体是不同的。
在DesignTime,系统会根据AutoScaleMode的设置不同,将一个参考值赋值给Form的AutoScaleDimensions属性。  
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); Note: 当前系统为英文。因此,当前字体高度为13,宽度为6   
在运行时,CurrentAutoScaleDimensions属性会提取当前系统的相关设置。生成另外一个计算值。AutoScaleFactor属性表现了两个值的比值,作为下一步缩放的缩放因子。
比如,在日文系统下运行时,CurrenAutoScaleDimensions为(6f, 12f)。AutoScaleFactor为(1f, 0.9xxxf).  
System.Win.Forms.ContainerControl会在OnLayout(还包括一堆其它的事件中)中对调用自己的 PerformAutoScale方法,其中对自己和它子孙调用Scale方法,并将AutoScaleFactor传入。从而实现调整他们的位置和大小,以适应当前操作系统的设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值