Fork me on GitHub

WPF布局控件汇总

1.Grid表格布局

Grid为WPF中最常用的布局容器, 作为View中的主要组成部分, 负责框架中整体的页面布局。

注意:

Grid的列宽与行高可采用固定、自动、按比例三种方式定义。

固定长度:值为一个确定的数字
自动长度:值为Auto,实际作用就是取实际控件所需的最小值
比例长度:*表示占用剩余的全部宽度;两行都是*,将平分剩余宽度;一个2*,一个*,则前者占剩余全部宽度的2/3,后者占1/3

 

2.StackPanel堆叠布局

StackPanel将控件按照行或列来顺序排列,但不会换行。通过设置面板的Orientation属性设置了两种排列方式:横排(Horizontal默认的)和竖排(Vertical),默认为竖排(Vertical)。

StackPanel 版式面板允许您按指定的方向堆叠对象。根据在 StackPanel 版式面板中定义的属性,内容可以垂直(默认情况)流动也可水平流动。

 

3.WrapPanel

 WrapPanel 版式面板与 StackPanel 版式面板相似,但它允许将对象置于多行上。当对象超出面板的边缘之后,不会被剪切,而是会环绕到下一行。在添加更多子对象时, WrapPanel 版式面板将继续环绕,直到用完其空间。只有到这个时候,它才会剪切对象。

 

4.DockPanel

DockPanel支持让元素简单地停靠在整个面板的某一条边上,然后拉伸元素以填满全部宽度或高度。它也支持让一个元素填充其他已停靠元素没有占用的剩余空间。
DockPanel 版式面板提供了一个布局区域,您可以在其中基于罗盘方向(北、南、东和西)沿屏幕的边缘排列子对象。 DockPanel 过去一直用作其他窗体程序包中的根布局,原因是它允许面板 “停靠” 到屏幕边缘。

 

5.UniformPanel

UniformGrid就是Grid的简化版,每个单元格的大小相同,不需要定义行列集合。每个单元格始终具有相同的大小,每个单元格只能容纳一个控件。UniformGrid 对象在相等或均匀的 Grid 区域中排列子对象。 UniformGrid 对象不是 Grid 面板的一种变形;更准确地说,它是一种平铺布局对象,

因为它会根据指定的行数和列数在所包含的每个对象之间设定相等的间距。可以在“属性”面板中的“公共属性”下指定行数和列数。向 UniformGrid 对象中添加子对象时,每个对象均按从左上至右下的顺序放到区域中,直到填满 UniformGrid 为止。这对诸如图像列表之类的控件非常有用。

 

6.Canvas画布

Canvas是一个类似于坐标系的面板,所有的元素通过设置坐标来决定其在坐标系中的位置。具体表现为使用Left、Top、Right、 Bottom附加属性在Canvas中定位控件。“画布”版式面板支持绝对定位方式,并且不会对其子对象应用任何布局策略,它实际上是一个空白画布。如果固定定位非常重要,请使用 Canvas 版式面板。

7.ScrollViewer滚动布局

ScrollViewer是带有滚动条的面板。在ScrollViewer中只能有一个子控件,若要显示多个子控件,需要将一个附加的 Panel控件放置在父 ScrollViewer中。然后可以将子控件放置在该控件中。

8.ViewBox

Viewbox的作用是拉伸或延展位于其中的组件,以填满可用空间。在Viewbox中只能有一个子控件,若要显示多个子控件,需要将一个附加的Panel控件放置在父Viewbox中。然后可以将子控件放置在该控件中。

常用属性:Stretch:获取或设置拉伸模式以决定该组件中的内容以怎样的形式填充该组件的已有空间,Stretch默认值为Uniform。

 

9.Border

Border 是一个装饰的控件,此控件用于绘制边框及背景,在Border中只能有一个子控件,若要显示多个子控件,需要将一个附加的Panel控件放置在父Border中。然后可以将子控件放置在该 Panel控件中。

参考:https://blog.csdn.net/qq_44034384/article/details/106154954
微软官方教程:https://learn.microsoft.com/zh-cn/previous-versions/visualstudio/design-tools/expression-studio-4/cc295017(v=expression.40)

posted @ 2024-04-07 11:13  WantRemake  阅读(720)  评论(0编辑  收藏  举报