DockPanel is
another panel control which enables elements to occupy the total panel space.
That means total panel space will be utilized by elements when we place the
elements in DockPanel. DockPanel has DockPanel.Dock attached property with four
values Top, Right, Bottom, and Left. Let’s discuss DockPanel with simple
example.
Open
Microsoft Visual Studio 2013 => Crate WPF application and change
MainWindow.xaml code to below.
<Window x:Class="DockPanelWPF.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="Red">Red</Button>
<Button DockPanel.Dock="Right" Background="Green">Green</Button>
<Button DockPanel.Dock="Bottom" Background="Yellow">Yellow</Button>
<Button DockPanel.Dock="Left" Background="Blue">Blue</Button>
</DockPanel>
</Window>
Run the
application and the output display as shown below.

As shown
above, the first three buttons Red, Green, Yellow buttons will occupy required
space and finally Blue button will occupy remaining total space in DockPanel.
We can use
the HorizontalAlignment and VerticalAlignment properties for the DockPanel
elements as shown below.
<Window x:Class="DockPanelWPF.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="Red" HorizontalAlignment="Right">Red</Button>
<Button DockPanel.Dock="Right" Background="Green" VerticalAlignment="Bottom">Green</Button>
<Button DockPanel.Dock="Bottom" Background="Yellow" HorizontalAlignment="Right">Yellow</Button>
<Button DockPanel.Dock="Left" Background="Blue" VerticalAlignment="Bottom">Blue</Button>
</DockPanel>
</Window>
Run the
application and the output display as shown below. Here also all elements
within the DockPanel occupies total space of DockPanel control.

We can apply
the LayoutTransform and RenderTransform for DockPanel like for any other WPF
control.