DockPanel.Dock 附加属性 (System.Windows.Controls)

DockPanel.Dock 附加属性 (System.Windows.Controls)

获取或设置一个值,该值指示一个子元素在父级 DockPanel 中的位置。

see GetDock, and SetDock

see GetDock, and SetDock

see GetDock, and SetDock

示例

以下示例演示如何使用可扩展应用程序标记语言 (XAML) 设置 Dock 附加属性。

// Create the application's main window

mainWindow = gcnew Window();

mainWindow->Title = "DockPanel Sample";

// Create the DockPanel

DockPanel^ myDockPanel = gcnew DockPanel();

myDockPanel->LastChildFill = true;

// Define the child content

Border^ myBorder1 = gcnew Border();

myBorder1->Height = 25;

myBorder1->Background = Brushes::SkyBlue;

myBorder1->BorderBrush = Brushes::Black;

myBorder1->BorderThickness = Thickness(1);

DockPanel::SetDock(myBorder1, Dock::Top);

TextBlock^ myTextBlock1 = gcnew TextBlock();

myTextBlock1->Foreground = Brushes::Black;

myTextBlock1->Text = "Dock = Top";

myBorder1->Child = myTextBlock1;

Border^ myBorder2 = gcnew Border();

myBorder2->Height = 25;

myBorder2->Background = Brushes::SkyBlue;

myBorder2->BorderBrush = Brushes::Black;

myBorder2->BorderThickness = Thickness(1);

DockPanel::SetDock(myBorder2, Dock::Top);

TextBlock^ myTextBlock2 = gcnew TextBlock();

myTextBlock2->Foreground = Brushes::Black;

myTextBlock2->Text = "Dock = Top";

myBorder2->Child = myTextBlock2;

Border^ myBorder3 = gcnew Border();

myBorder3->Height = 25;

myBorder3->Background = Brushes::LemonChiffon;

myBorder3->BorderBrush = Brushes::Black;

myBorder3->BorderThickness = Thickness(1);

DockPanel::SetDock(myBorder3, Dock::Bottom);

TextBlock^ myTextBlock3 = gcnew TextBlock();

myTextBlock3->Foreground = Brushes::Black;

myTextBlock3->Text = "Dock = Bottom";

myBorder3->Child = myTextBlock3;

Border^ myBorder4 = gcnew Border();

myBorder4->Width = 200;

myBorder4->Background = Brushes::PaleGreen;

myBorder4->BorderBrush = Brushes::Black;

myBorder4->BorderThickness = Thickness(1);

DockPanel::SetDock(myBorder4, Dock::Left);

TextBlock^ myTextBlock4 = gcnew TextBlock();

myTextBlock4->Foreground = Brushes::Black;

myTextBlock4->Text = "Dock = Left";

myBorder4->Child = myTextBlock4;

Border^ myBorder5 = gcnew Border();

myBorder5->Background = Brushes::White;

myBorder5->BorderBrush = Brushes::Black;

myBorder5->BorderThickness = Thickness(1);

TextBlock^ myTextBlock5 = gcnew TextBlock();

myTextBlock5->Foreground = Brushes::Black;

myTextBlock5->Text = "This content will Fill the remaining space";

myBorder5->Child = myTextBlock5;

// Add child elements to the DockPanel Children collection

myDockPanel->Children->Add(myBorder1);

myDockPanel->Children->Add(myBorder2);

myDockPanel->Children->Add(myBorder3);

myDockPanel->Children->Add(myBorder4);

myDockPanel->Children->Add(myBorder5);

// Add the parent Canvas as the Content of the Window Object

mainWindow->Content = myDockPanel;

mainWindow->Show();

// Create the application's main window

mainWindow = new Window ();

mainWindow.Title = "DockPanel Sample";

// Create the DockPanel

DockPanel myDockPanel = new DockPanel();

myDockPanel.LastChildFill = true;

// Define the child content

Border myBorder1 = new Border();

myBorder1.Height = 25;

myBorder1.Background = Brushes.SkyBlue;

myBorder1.BorderBrush = Brushes.Black;

myBorder1.BorderThickness = new Thickness(1);

DockPanel.SetDock(myBorder1, Dock.Top);

TextBlock myTextBlock1 = new TextBlock();

myTextBlock1.Foreground = Brushes.Black;

myTextBlock1.Text = "Dock = Top";

myBorder1.Child = myTextBlock1;

Border myBorder2 = new Border();

myBorder2.Height = 25;

myBorder2.Background = Brushes.SkyBlue;

myBorder2.BorderBrush = Brushes.Black;

myBorder2.BorderThickness = new Thickness(1);

DockPanel.SetDock(myBorder2, Dock.Top);

TextBlock myTextBlock2 = new TextBlock();

myTextBlock2.Foreground = Brushes.Black;

myTextBlock2.Text = "Dock = Top";

myBorder2.Child = myTextBlock2;

Border myBorder3 = new Border();

myBorder3.Height = 25;

myBorder3.Background = Brushes.LemonChiffon;

myBorder3.BorderBrush = Brushes.Black;

myBorder3.BorderThickness = new Thickness(1);

DockPanel.SetDock(myBorder3, Dock.Bottom);

TextBlock myTextBlock3 = new TextBlock();

myTextBlock3.Foreground = Brushes.Black;

myTextBlock3.Text = "Dock = Bottom";

myBorder3.Child = myTextBlock3;

Border myBorder4 = new Border();

myBorder4.Width = 200;

myBorder4.Background = Brushes.PaleGreen;

myBorder4.BorderBrush = Brushes.Black;

myBorder4.BorderThickness = new Thickness(1);

DockPanel.SetDock(myBorder4, Dock.Left);

TextBlock myTextBlock4 = new TextBlock();

myTextBlock4.Foreground = Brushes.Black;

myTextBlock4.Text = "Dock = Left";

myBorder4.Child = myTextBlock4;

Border myBorder5 = new Border();

myBorder5.Background = Brushes.White;

myBorder5.BorderBrush = Brushes.Black;

myBorder5.BorderThickness = new Thickness(1);

TextBlock myTextBlock5 = new TextBlock();

myTextBlock5.Foreground = Brushes.Black;

myTextBlock5.Text = "This content will Fill the remaining space";

myBorder5.Child = myTextBlock5;

// Add child elements to the DockPanel Children collection

myDockPanel.Children.Add(myBorder1);

myDockPanel.Children.Add(myBorder2);

myDockPanel.Children.Add(myBorder3);

myDockPanel.Children.Add(myBorder4);

myDockPanel.Children.Add(myBorder5);

// Add the parent Canvas as the Content of the Window Object

mainWindow.Content = myDockPanel;

mainWindow.Show ();

WindowTitle = "DockPanel Sample"

'Create a DockPanel as the root Panel

Dim myDockPanel As New DockPanel()

myDockPanel.LastChildFill = True

' Define the child content

Dim myBorder1 As New Border()

myBorder1.Height = 25

myBorder1.Background = Brushes.SkyBlue

myBorder1.BorderBrush = Brushes.Black

myBorder1.BorderThickness = New Thickness(1)

DockPanel.SetDock(myBorder1, Dock.Top)

Dim myTextBlock1 As New TextBlock()

myTextBlock1.Foreground = Brushes.Black

myTextBlock1.Text = "Dock = Top"

myBorder1.Child = myTextBlock1

Dim myBorder2 As New Border()

myBorder2.Height = 25

myBorder2.Background = Brushes.SkyBlue

myBorder2.BorderBrush = Brushes.Black

myBorder2.BorderThickness = New Thickness(1)

DockPanel.SetDock(myBorder2, Dock.Top)

Dim myTextBlock2 As New TextBlock()

myTextBlock2.Foreground = Brushes.Black

myTextBlock2.Text = "Dock = Top"

myBorder2.Child = myTextBlock2

Dim myBorder3 As New Border()

myBorder3.Height = 25

myBorder3.Background = Brushes.LemonChiffon

myBorder3.BorderBrush = Brushes.Black

myBorder3.BorderThickness = New Thickness(1)

DockPanel.SetDock(myBorder3, Dock.Bottom)

Dim myTextBlock3 As New TextBlock()

myTextBlock3.Foreground = Brushes.Black

myTextBlock3.Text = "Dock = Bottom"

myBorder3.Child = myTextBlock3

Dim myBorder4 As New Border()

myBorder4.Width = 200

myBorder4.Background = Brushes.PaleGreen

myBorder4.BorderBrush = Brushes.Black

myBorder4.BorderThickness = New Thickness(1)

DockPanel.SetDock(myBorder4, Dock.Left)

Dim myTextBlock4 As New TextBlock()

myTextBlock4.Foreground = Brushes.Black

myTextBlock4.Text = "Dock = Left"

myBorder4.Child = myTextBlock4

Dim myBorder5 As New Border()

myBorder5.Background = Brushes.White

myBorder5.BorderBrush = Brushes.Black

myBorder5.BorderThickness = New Thickness(1)

Dim myTextBlock5 As New TextBlock()

myTextBlock5.Foreground = Brushes.Black

myTextBlock5.Text = "This content will Fill the remaining space"

myBorder5.Child = myTextBlock5

' Add child elements to the DockPanel Children collection

myDockPanel.Children.Add(myBorder1)

myDockPanel.Children.Add(myBorder2)

myDockPanel.Children.Add(myBorder3)

myDockPanel.Children.Add(myBorder4)

myDockPanel.Children.Add(myBorder5)

Me.Content = myDockPanel

Dock = "Top"

Dock = "Top"

Dock = "Bottom"

Dock = "Left"

This content will "Fill" the remaining space

注解

如果将 属性设置为 LastChildFilltrue(默认设置),则 的最后一个子元素始终填充剩余空间,而不考虑在最后一个 DockPanel 子元素上设置的任何其他停靠值。 若要向另一个方向停靠子元素,必须将 属性设置为 LastChildFillfalse ,并且还必须在最后一个子元素上指定显式停靠方向。

注意

在屏幕上的 DockPanel 子元素的位置由 Dock 相应子元素的 属性 以及 下这些子元素 DockPanel的相对顺序确定。 因此,一组具有相同 Dock 属性值的子元素可以在屏幕上以不同的方式定位,具体取决于这些子元素在 DockPanel下的顺序。 子排序会影响定位, DockPanel 因为 会按顺序循环访问其子元素,从而根据剩余空间设置每个元素的位置。

依赖项属性信息

标识符字段

DockProperty

元数据属性设置为 true

适用于

另请参阅

GetDock(UIElement)

SetDock(UIElement, Dock)

相关数据