Canvas、StackPanel、WrapPanel、DockPanel和Grid是WPF中主要的5种内建面板,这些面板类都位于System.Windows.Controls命名空间下。

      DockPanel支持让元素简单地停靠在整个面板的某一条边上,然后拉伸元素以填满全部宽度或高度。它也支持让一个元素填充其他已停靠元素没有占用的剩余空间。

      DockPanel有一个Dock附加属性,因此子元素用4个值来控制她们的停靠:Left、Top、Right、Bottom。Dock 没有Fill值。作为替代,最后的子元素将加入一个DockPanel并填满所有剩余的空间,除非DockPanel的LastChildFill属性为false,它将朝某个方向停靠。

<Window x:Class="WPFDock.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <DockPanel>
        <Button DockPanel.Dock="Top" Background="Aqua">1(Top)</Button>
        <Button DockPanel.Dock="Left" Background="Green">2(Left)</Button>
        <Button DockPanel.Dock="Right" Background="Yellow">3(Right)</Button>
        <Button DockPanel.Dock="Bottom" Background="Blue">4(Bottom)</Button>
        <Button Background="Orange">5</Button>
    </DockPanel>
</Window>

效果如图:

WPF内建面板之——DockPanel

      它们添加到DockPanel中的顺序是由它们的数字和颜色表示的。与StackPanel一样,任何元素的拉伸是由于它们的HorizontalAlignment或者VerticalAlignment的值为Strech造成的。如果元素不想填充DockPanel给它们的空间,这些元素可以选择不同的对齐方式。

     DockPanel对于在一个Window或者Page中布局顶层用户界面十分有用,尤其是当Window或Page中大量要停靠的元素是一些包含了内容的其他的面板时。子元素添加到DockPanel中的顺序是有影响的,因为每个子元素得到的是剩余的位于边缘的停靠空间。但是DockPanel对子元素无数量限制,当多个元素朝同一个方向停靠时,它们会被简单地排列在某个方向上。

相关文章:

  • 2021-06-03
  • 2022-01-31
  • 2021-12-31
  • 2021-06-30
  • 2021-04-11
  • 2021-09-08
猜你喜欢
  • 2021-11-16
  • 2021-09-13
  • 2021-11-23
  • 2021-12-12
  • 2021-06-04
  • 2021-10-31
相关资源
相似解决方案