Compartilhar via


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"/>

Consulte também

Referência

GridSplitter

Outros recursos

Exemplos de GridSplitter

Tópicos de Como Fazer em GridSplitter