#446 – Default Docking for DockPanel Children
December 8, 2011 Leave a comment
You normally specify a value for the DockPanel.Dock attached property for all children of a DockPanel, indicating which side the element should be docked to. However, if you don’t specify a value for the Dock property, the child element will be docked to the Left, by default.
<DockPanel LastChildFill="False"> <ListBox ItemsSource="{Binding MovieList}"/> <Label Content="1 - Label at Top" DockPanel.Dock="Top" Background="Bisque"/> <Label Content="2 - Label at Left" DockPanel.Dock="Left" Background="BurlyWood"/> <Label Content="3 - Last Label" DockPanel.Dock="Top" Background="Cornsilk"/> </DockPanel>
Because the DockPanel container docks elements in the order that they appear in the XAML, if we change the order of the elements, the ListBox will still default to a Dock value of Left, but will dock within the remaining space.
<DockPanel LastChildFill="False"> <Label Content="1 - Label at Top" DockPanel.Dock="Top" Background="Bisque"/> <ListBox ItemsSource="{Binding MovieList}"/> <Label Content="2 - Label at Left" DockPanel.Dock="Left" Background="BurlyWood"/> <Label Content="3 - Last Label" DockPanel.Dock="Top" Background="Cornsilk"/> </DockPanel>