2

有没有办法在最大化屏幕或更改分辨率时让所有内容在 windowsFrom 上自动缩放。

我发现手动缩放它是正确的,但是在切换分辨率时,我每次都必须更改它。

this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
4

1 回答 1

3

没有简单的开关可以让您自动执行此操作。自动缩放是为了解决一个非常不同的问题。您需要考虑到这个设计目标来布置您的表单及其控件。

特别是,最好的方法是使用停靠的TableLayoutPanel控件来“填充”整个表单——将其Dock属性设置为DockStyle.Fill. 这将基本上成为您用来布置您希望出现在表单上的子控件的“布局网格”。

然后,将每个常规控件放置在该控件的“单元格”内TableLayoutPanel。设置子控件的Anchor属性以指示您希望它们在窗体展开(或缩小)时如何增长。例如:

  • 如果您希望控件在窗体最大化时水平增长,您需要将其锚定到其容器单元格的左右边缘。
  • 要垂直增长,您需要将其锚定到单元格的顶部和右侧边缘。
  • 如果将其锚定到所有边缘,它将通过向各个方向增长而变大。
  • 如果你将它锚定到任何边缘,控件将保持相同的大小,并简单地在单元格内居中。

这需要一些麻烦才能正确。例如,您有时必须在控件内部设置控件ColumnSpan和/或RowSpan属性,TableLayoutPanel以确保它们按照您希望的方式排列,尤其是相对于窗体上显示的其他控件。

但这只是做你想做的事的唯一方法,而且一旦你设置好它就可以很好地工作

于 2012-05-05T12:38:51.450 回答