WPF学习记录(一):布局

  初学WPF,记录一下学习中的知识点。

  WPF中的UniformGrid布局,与Grid布局类似,都是表格形式,区别是UniformGrid布局会自动将表格的行列平均分割,不需要手动去设置单元格的宽高,适用于均分的表格。

  UniformGrid布局会根据单元格的数量,来进行自动分割,行数和列数也是根据单元格的数量来自动调整;我们在使用时也可以通过属性手动进行控制行数列数,UniformGrid下的属性Rows手动控制行数,Columns属性手动控制列数。FirstColumn属性控制哪一列为起始列(列数从0开始)。FlowDirection属性控制排列方向,从左到右还是从右到左。通过这些属性,我们可以灵活设置想要的布局效果。

  WrapPanel布局,会自动定位子控件,当改变窗体大小遮挡到子控件时,会自动调整子控件的布局位置以尽量显示出子控件。默认是横向排列的,可以通过Orientation属性设置横向排列还是纵向排列。

  StackPanel布局,与WrapPanel类似,但是在窗体缩小时不会自动为子控件换行。性能上StackPanel比Grid强。

  Canvas(画布)布局,使用坐标精确定位子控件位置。调整窗体大小时,子控件的位置不变,子控件在Canvas布局中有固定的坐标,改变窗体大小时不会改变该坐标,所以子控件的位置不会改变。Canvas布局中,子控件布局选项中的垂直对齐方式和水平对齐方式属性无效  HorizontalAlignment   VerticalAlignment。子控件相互遮挡时,可以通过Panel.ZIndex来设置哪个控件显示在最上方,默认是0,值越大的显示在越上方。

  DockPanel控件,作为一种可以设置子控件停靠方式的控件,在WPF中广泛使用,DockPanel中的子控件通过设置DockPanel.Dock属性(Left、Top、Right、Bottom)来确定子控件的停靠位置,DockPanel控件默认LastChildFill属性为true,也就是说最后一个子控件填充满整个DockPanel控件中的剩余位置。

  ScrollViewer控件,滚动视图,适用于展示较大的图片时使用。默认垂直滚动条可用,水平滚动条不可用,HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Visible"。属性值可以设置为Disabled、Auto、Hidden、Visible。Disabled是不可用;Auto是自动;例如水平滚动条设置Auto,那么当控件水平方向小于图片时,就会显示出滚动条;Hidden是隐藏滚动条,和Visible类似,就是滚动条不可见,可以通过键盘上的方向键来进行滚动条的控制;Visible是滚动条可见。

  Border控件,作为装饰嵌套在其他控件外,一般不单独使用。使用Border控件嵌套在其他控件外,可以灵活的实现多种控件风格,例如可以轻松实现文本框圆角处理。在TextBlock控件外嵌套Border控件,设置Border的BorderThickness属性为"2,3",即Border边框的左右宽度为2,上下宽度为3,设置Border的CornerRadius属性为5,CornerRadius属性表示Border边框的圆角半径。

原文地址:https://www.cnblogs.com/haley24/p/12306517.html