最大化窗体时自动缩放子控件
本文关键字:缩放 控件 窗体 最大化 | 更新日期: 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
属性,以确保它们按您希望的方式排列,尤其是相对于窗体上显示的其他控件。
但这几乎是做你想要的事情的唯一方法,一旦你设置好它,它就会很好地工作。