当前位置:编程学习 > C#/ASP.NET >>

C# 在中文系统和英文系统, 为什么窗体显示大小不一样?

C# 窗体在中文系统和英文系统的大小不一样(分辨率同是1024*768)

在不同语言操作系统中打开同一C#工程,窗体控件大小位置都不一样

C# 在中文系统和英文系统, 为什么窗体显示大小不一样? --------------------编程问答-------------------- 因为字体不一样。

设置 Form 的 CurrentAutoScaleDimensions 属性。 --------------------编程问答-------------------- 以及 AutoScaleMode 属性。 --------------------编程问答-------------------- 在不同的操作系统版本或语言版本之间,系统的默认字体是不同的。
在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传入。从而实现调整他们的位置和大小,以适应当前操作系统的设置。 
--------------------编程问答-------------------- 我是新手,上面的办法不会用,但是最简单的办法是:

把Form的AutoScaleMode从默认的Font设置成None,就一切都解决了……
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,