我们有一个WinForms应用程序,其中包含位于表单上的图片框等控件。基础应用程序是英文的。
我们已将此应用程序翻译成多种不同语言(法语,西班牙语,丹麦语,希腊语等),最近翻译成简体中文。翻译的应用程序在我们的操作系统上完美运行(英语)。
我们的一位客户在其操作系统上安装了该应用程序,Windows XP为简体中文版。我们的应用程序布局被打破了。简单地说,元素被推到右下方的因子与元素和左上角之间的距离成正比。例如,设计视图右上角的元素被推离屏幕右侧,而页面底部的项目则向下和向右推。
该应用程序支持在使用时切换语言。当语言环境为en-US时,没有布局问题。切换到简体中文时,会出现问题,但仅限于简体中文操作系统。屏幕分辨率和DPI是相同的。
你有什么想法吗?我确定它必须是一个简单的配置设置,但我一直无法解决这个问题。
答案 0 :(得分:1)
系统基础字体的大小也很重要。这确实是你可以在XP上改变的东西。这将调用表单的自动缩放逻辑,旨在确保控件变大以适应更大的字体大小。
这是设计使用,由表单的AutoScaleMode属性控制。不要改变它,重新缩放很重要。只需确保表单布局看起来仍然很好,使用像Anchor和Dock这样的属性,像TableLayoutPanel,FlowLayoutPanel这样的控件。或者是棘手的事件的Resize事件。
将其粘贴到表单中以测试此逻辑,而无需更改系统设置:
protected override void OnLoad(EventArgs e) {
this.Font = new Font(this.Font.FontFamily, this.Font.SizeInPoints * 125 / 96);
}