布局管理对于创建响应式和用户友好的界面至关重要。Winform中,实现布局管理有这么几种方式:
本篇笔记我们将介绍Anchor属性、Dock属性以及容器控件的使用。
我们向窗体上拖入一个控件,在右侧属性中可以找到Anchor和Dock属性的设置。
Anchor表示锚定到窗体,图中的例子锚定的相对位置是窗体左上角,Location属性指定了锚定的位置,图中的位置是左上角(12, 12)
位置;Dock表示停靠到窗体的某一边缘,它类似Swing中的BorderLayout,能够实现东西南北中的布局形式。要注意,Anchor和Dock只能设置一个,它们不会同时起效,因此如果Dock被设置,Anchor属性就不再生效了。
Anchor具有Top
、Left
、Bottom
、Right
四个属性,指定属性后在该方向上的位置会锚定,下面是一个锚定到左上角的按钮。
无论我们怎么拖拽窗口,该按钮都不会相对窗体左上角改变位置。
选择Dock时,会弹出一个停靠边缘的选择,我们可以在东西南北中几个区块内选择停靠的区域。
下面例子是一个停靠到窗体底部边缘的按钮。
Winform具备一组容器控件,容器控件可以近似理解为Web开发中的<div>
,它一般都需要和Dock属性配合使用,并通过容器控件的层层嵌套来实现复杂的布局。
Panel:Panel是最简单的容器,没有什么额外的功能。
FlowLayoutPanel:FlowLayoutPanel即流式布局容器,它允许内部的控件从左向右排列,宽度不足时会自动换行,当控件数量增加或减少时,它也会自动填充可用的空间。
TabelLayoutPanel:表格容器,可以将控件组织在行和列中,每个单元格内可以放置一个控件,控件的大小和位置可以根据需要调整,适用于需要精确对齐的场景。
GroupBox:相比Panel增加了边框和标题。
TabControl:TabControl控件允许在同一位置显示多个面板,通过选项卡切换不同的内容区域,适用于需要在同一空间内展示多个视图的场景。
SplitContainer:SplitContainer控件将父容器分割为两个可调整大小的面板,用户可以通过拖动分割条来调整面板的大小,适用于需要动态调整区域大小的场景。