WPF內建面板之——DockPanel

  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>

效果如圖:

      它們添加到DockPanel中的順序是由它們的數字和顏色表示的。與StackPanel一樣,任何元素的拉伸是由於它們的HorizontalAlignment或者VerticalAlignment的值爲Strech造成的。如果元素不想填充DockPanel給它們的空間,這些元素可以選擇不同的對齊方式。

     DockPanel對於在一個Window或者Page中佈局頂層用戶界面十分有用,尤其是當Window或Page中大量要停靠的元素是一些包含了內容的其他的面板時。子元素添加到DockPanel中的順序是有影響的,因爲每個子元素得到的是剩餘的位於邊緣的停靠空間。但是DockPanel對子元素無數量限制,當多個元素朝同一個方向停靠時,它們會被簡單地排列在某個方向上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章