Jak zmienić rozmiar wierszy przy użyciu GridSplitter

W tym przykładzie pokazano, jak użyć poziomego GridSplitter do ponownego rozsyłania przestrzeni między dwoma wierszami w obiekcie Grid bez zmieniania wymiarów elementu Grid.

Przykład

Jak utworzyć obiekt GridSplitter nakładający krawędź wiersza

Aby określić GridSplitter rozmiar sąsiednich wierszy w obiekcie Grid, ustaw Row dołączoną właściwość na jeden z wierszy, które chcesz zmienić. Jeśli masz Grid więcej niż jedną kolumnę, ustaw dołączoną ColumnSpan właściwość, aby określić liczbę kolumn. Następnie ustaw VerticalAlignment wartość lub TopBottom (ustawienie wyrównania zależy od tego, które dwa wiersze chcesz zmienić). Na koniec ustaw HorizontalAlignment właściwość na Stretch.

W poniższym przykładzie pokazano, jak zdefiniować poziomy rozmiar GridSplitter sąsiednich wierszy.

<GridSplitter Grid.Row="1" 
              Grid.ColumnSpan="3" 
              HorizontalAlignment="Stretch" 
              VerticalAlignment="Top"
              Background="Black" 
              ShowsPreview="true"
              ResizeDirection="Rows"
              Height="5"/>

Obiekt GridSplitter , który nie zajmuje własnego wiersza, może być zaciemniany przez inne kontrolki w obiekcie Grid. Aby uzyskać więcej informacji na temat zapobiegania temu problemowi, zobacz Upewnij się, że kontrolka GridSplitter jest widoczna.

Jak utworzyć obiekt GridSplitter, który zajmuje wiersz

Aby określić obiekt GridSplitter , który zajmuje wiersz w obiekcie Grid, ustaw Row dołączoną właściwość na jeden z wierszy, które chcesz zmienić. Jeśli masz Grid więcej niż jedną kolumnę, ustaw dołączoną ColumnSpan właściwość na liczbę kolumn. Następnie ustaw VerticalAlignment właściwość na Center, ustaw HorizontalAlignment właściwość na Stretch, i ustaw Height wartość wiersza zawierającego wartość GridSplitterAuto.

W poniższym przykładzie pokazano, jak zdefiniować poziomy obszar GridSplitter , który zajmuje wiersz i zmienia rozmiar wierszy po obu stronach.

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

Zobacz też