布局

为什么布局很重要

控件的布局对于应用程序的可用性来说是非常重要的。基于像素坐标排列控件只能工作在有限的环境里,但是当你一使用它在不同的屏幕或者不同字体大小的时候,它就无法很好的工作。WPF提供了丰富的内置布局面板集合以帮助你。
WPF中有五个最流行的布局面板:

  • 网格布局
  • 堆栈布局
  • 停靠布局
  • 流式布局
  • 画板布局

最佳实践

  • 避免固定位置
    使用对齐属性并结合内间距设置元素在面板中的位置。
  • 避免固定大小
    尽可能设置元素的宽度和高度为Auto
  • 不要滥用画板布局来布局元素。仅使用它在向量图形中。
  • 使用堆栈布局来布局你的多个对话框的按钮
  • 使用网格布局来布局实体表单的静态数据
    为标签创建一个自动大小(按内容)的列,为文本框创建一个星型大小(按比例)的列。
  • 使用网格面板的ItemControl在数据模板中布局你的动态键值列表。使用SharedSize特性同步标签的宽度。(?)

垂直和水平对齐

使用VerticalAlignment和HorizontalAlignment属性来停靠控件到面板的一个或者多个边。
VerticalAlignment有Top、Center、Bottom、Strech
HorizontalAlignment有Left、Center、Right、Strech
Strech为拉伸子元素以填充父元素的已分配空间

边距和填充

边距和填充属性可以被用于在空间的周围预留某些空间

  • 边距是控件周围额外的空间
  • 填充是控件内部额外的空间
  • 外部控件的填充是内部控件的边距

高度和宽度

尽管这不是推荐的方式,但所有控件都提供了高度和宽度属性给元素一个固定大小。一个最好的方式是使用最小高度、最高高度、最小宽度和最大宽度属性来定义可接受的范围。
如果你设置宽度或者高度为自动,控件将会根据内部的大小控制自身大小。

溢出处理 裁剪

布局控件通常裁剪它们超出面板边界的子元素的大小。这个行为可以被ClipToDounds属性控制。

滚动

当控件太大以至于不能适应可用大小,你可以使用ScrollViewer包裹它。滚动条控件拥有垂直和水平两个滚动条来选择可见区域。
滚动条的可见由垂直和水平的ScrollbarVisibility属性控制

<ScrollViewer>
    <StackPanel>
        <Button Content="First Item"/>
        <Button Content="Second Item"/>
        <Button Content="Third Item"/>
    </StackPanel>
</ScrollViewer>
posted @ 2023-07-18 09:18  Juston007  阅读(28)  评论(0)    收藏  举报