问题描述
C#窗体在中文系统和英文系统的大小不一样(分辨率同是1024*768)在不同语言操作系统中打开同一C#工程,窗体控件大小位置都不一样C#在中文系统和英文系统,为什么窗体显示大小不一样?
解决方案
解决方案二:
因为字体不一样。设置Form的CurrentAutoScaleDimensions属性。
解决方案三:
以及AutoScaleMode属性。
解决方案四:
在不同的操作系统版本或语言版本之间,系统的默认字体是不同的。在DesignTime,系统会根据AutoScaleMode的设置不同,将一个参考值赋值给Form的AutoScaleDimensions属性。this.AutoScaleDimensions=newSystem.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,就一切都解决了……