Como: Resize Rows with a GridSplitter
Este exemplo mostra como usar um GridSplitter horizontal para redistribuir o espaço entre duas linhas em um Grid sem alterar as dimensões do Grid.
Exemplo
Como criar um GridSplitter que sobrepõe a borda de uma linha
Para especificar um GridSplitter que redimensiona linhas adjacentes em um Grid, defina a propriedade anexada Row como uma das linhas que você deseja redimensionar. Se seu Grid tiver mais de uma coluna, defina a propriedade anexada ColumnSpan como sendo o número de colunas. Em seguida, defina VerticalAlignment como Top ou Bottom (o alinhamento que você definir depende de quais duas linhas você deseja redimensionar). Finalmente, defina a propriedade HorizontalAlignment como Stretch.
O exemplo a seguir mostra como definir um GridSplitter horizontal que redimensiona linhas adjacentes. For the complete sample, see GridSplitters que redimensionar linhas e colunas de exemplo.
<GridSplitter Grid.Row="1"
Grid.ColumnSpan="3"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
Background="Black"
ShowsPreview="true"
ResizeDirection="Columns"
Height="5"/>
Um GridSplitter que não ocupa sua própria linha pode ser obscurecido por outros controles no Grid. Para obter mais informações sobre como evitar que esse problema, consulte Como: Make Sure That a GridSplitter Is Visible.
Como criar um GridSplitter que ocupa uma linha
Para especificar um GridSplitter que ocupa uma linha em um Grid, defina a propriedade anexada Row como uma das linhas que você deseja redimensionar. Se seu Grid tiver mais de uma coluna, defina a propriedade anexada ColumnSpan como sendo o número de colunas. Então defina o VerticalAlignment como Center, defina a propriedade HorizontalAlignment como Stretch, e defina a Height da coluna que contém o GridSplitter como Auto.
O exemplo a seguir mostra como definir um GridSplitter horizontal que ocupe uma linha e redimensione as linhas em ambos os lados dele. For the complete sample, see GridSplitters que redimensionar linhas e colunas de exemplo.
<Grid.RowDefinitions>
<RowDefinition Height="50*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="50*" />
</Grid.RowDefinitions>
...
<StackPanel Grid.Row="0" Grid.Column="1" Background="Tan"/>
<GridSplitter Grid.Row="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Background="Black"
ShowsPreview="True"
Height="5"
/>
<StackPanel Grid.Row="2" Grid.Column="0" Background="Brown"/>