界面布局

布局管理对于创建响应式和用户友好的界面至关重要。Winform中,实现布局管理有这么几种方式:

  • 无视布局管理,直接用Visual Studio设计器拖拽绝对布局,当然这种方式很不友好,用户改变窗体的大小时界面上的控件并不会自适应的改变位置
  • 使用Anchor锚属性实现简单的动态布局适配
  • (推荐)使用Dock属性实现动态布局适配,并常搭配容器控件一起使用

本篇笔记我们将介绍Anchor属性、Dock属性以及容器控件的使用。

设置Anchor和Dock属性

我们向窗体上拖入一个控件,在右侧属性中可以找到Anchor和Dock属性的设置。

Anchor表示锚定到窗体,图中的例子锚定的相对位置是窗体左上角,Location属性指定了锚定的位置,图中的位置是左上角(12, 12)位置;Dock表示停靠到窗体的某一边缘,它类似Swing中的BorderLayout,能够实现东西南北中的布局形式。要注意,Anchor和Dock只能设置一个,它们不会同时起效,因此如果Dock被设置,Anchor属性就不再生效了。

Anchor 锚定

Anchor具有TopLeftBottomRight四个属性,指定属性后在该方向上的位置会锚定,下面是一个锚定到左上角的按钮。

无论我们怎么拖拽窗口,该按钮都不会相对窗体左上角改变位置。

Dock 停靠

选择Dock时,会弹出一个停靠边缘的选择,我们可以在东西南北中几个区块内选择停靠的区域。

下面例子是一个停靠到窗体底部边缘的按钮。

容器控件

Winform具备一组容器控件,容器控件可以近似理解为Web开发中的<div>,它一般都需要和Dock属性配合使用,并通过容器控件的层层嵌套来实现复杂的布局。

Panel:Panel是最简单的容器,没有什么额外的功能。

FlowLayoutPanel:FlowLayoutPanel即流式布局容器,它允许内部的控件从左向右排列,宽度不足时会自动换行,当控件数量增加或减少时,它也会自动填充可用的空间。

TabelLayoutPanel:表格容器,可以将控件组织在行和列中,每个单元格内可以放置一个控件,控件的大小和位置可以根据需要调整,适用于需要精确对齐的场景。

GroupBox:相比Panel增加了边框和标题。

TabControl:TabControl控件允许在同一位置显示多个面板,通过选项卡切换不同的内容区域,适用于需要在同一空间内展示多个视图的场景。

SplitContainer:SplitContainer控件将父容器分割为两个可调整大小的面板,用户可以通过拖动分割条来调整面板的大小,适用于需要动态调整区域大小的场景。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap