如何根据与.resx相关的语言自动调整控件大小?

时间:2011-09-09 13:37:08

标签: c# .net winforms

我获得了一些遗留的.net代码并修改了应用程序,因此它可以是多语言。

我已将Form的Localizable专有权设置为True并创建了一种语言,并针对每种语言对设计师进行了必要的修改。

我可以轻松地将所有控件的文本更新为正确的语言,但我无法弄清楚如何使用所有的tablelayout重绘主窗口。

基本上,对于每种语言,在相关的.resx中,在“其他”,我有我希望将其重新绘制/刷新为的大小:

$this.ClientSize System.Drawing.Size 815, 700

cmdCloseForm.Location   System.Drawing.Point    781, 6

cmdMinimize.Location    System.Drawing.Point    757, 6

pictureBoxBanner.Size   System.Drawing.Size 807, 90

tableLayoutPanel1.Size  System.Drawing.Size 204, 530

tableLayoutPanel2.Size  System.Drawing.Size 807, 90

tableLayoutPanel4.Location  System.Drawing.Point    212, 125

tableLayoutPanelAbout.Location  System.Drawing.Point    212, 125
[...]

cmdCloseForm.Location System.Drawing.Point 781, 6 cmdMinimize.Location System.Drawing.Point 757, 6 pictureBoxBanner.Size System.Drawing.Size 807, 90 tableLayoutPanel1.Size System.Drawing.Size 204, 530 tableLayoutPanel2.Size System.Drawing.Size 807, 90 tableLayoutPanel4.Location System.Drawing.Point 212, 125 tableLayoutPanelAbout.Location System.Drawing.Point 212, 125 [...]

我如何调整所有这些,因为必须有一种方法可以自动执行它(设计师能够调整所有内容,如果语言被更改,例如..),因为它们存储在resx ..我试过刷新主表格,冷冻它并刷新它......无济于事。如何让程序知道如果语言被更改,自动将语言.resx中的所有控件调整大小/移动到那里指定的大小?

1 个答案:

答案 0 :(得分:0)

对旧版应用进行改造可能很困难,但Microsoft建议在Walkthrough: Creating a Layout That Adjusts Proportion for Localization

中使用TableLayoutAutoSizeAnchor