最大化窗体时自动缩放子控件

本文关键字:缩放 控件 窗体 最大化 | 更新日期: 2023-09-27 18:33:12

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

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

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

最大化窗体时自动缩放子控件

没有

简单的开关可以自动执行此操作。自动缩放用于解决一个非常不同的问题。您需要根据此设计目标对窗体及其控件进行布局。

特别是,执行此操作的最佳方法是使用停靠的 TableLayoutPanel 控件来"填充"整个窗体 — 将其 Dock 属性设置为 DockStyle.Fill 。这实质上将成为"布局网格",用于布置要在窗体上显示的子控件。

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

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

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

但这几乎是做你想要的事情的唯一方法,一旦你设置好它,它就会很好地工作。