#460 – A GridSplitter Can Share a Cell with Another Control
December 28, 2011 Leave a comment
When using a GridSplitter in a Grid, you often define the Grid so that the GridSplitter is located within its own row (for a horizontal GridSplitter) or column (for a vertical GridSplitter). However, you can also place a GridSplitter in a cell with another control.
In the example below, the horizonal GridSplitter is placed in the first row (of two rows), with two Label controls.
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Label Content="Row 0 Col 0" Background="Azure" Grid.Row="0" Grid.Column="0" />
<Label Content="Row 0 Col 1" Background="Lavender" Grid.Row="0" Grid.Column="1" />
<Label Content="Row 1 Col 0" Background="Moccasin" Grid.Row="1" Grid.Column="0" />
<Label Content="Row 1 Col 1" Background="Honeydew" Grid.Row="1" Grid.Column="1" />
<GridSplitter Grid.Row="0" Grid.ColumnSpan="2" Height="3" Background="Blue"
VerticalAlignment="Bottom" HorizontalAlignment="Stretch" />
</Grid>


Note that we add the GridSplitter as the last element in the Grid, to make sure that it shows up on top of the Label that it shares a cell with.