Jak zmienić rozmiar kolumn przy użyciu GridSplitter

W tym przykładzie pokazano, jak utworzyć pionową GridSplitterGrid przestrzeń w celu ponownego rozesłania przestrzeni między dwiema kolumnami w tabeli bez zmieniania wymiarów tabeli Grid.

Przykład

How to create a GridSplitter that overlays the edge of a column (Jak utworzyć gridSplitter, który nakłada krawędź kolumny)

Aby określić obiekt, GridSplitter który zmienia rozmiar sąsiadujących kolumn w obiekcie Grid, Column ustaw właściwość attached na jedną z kolumn, której rozmiar chcesz zmienić. Jeśli obiekt Grid ma więcej niż jeden wiersz, ustaw właściwość RowSpan attached na liczbę wierszy. Następnie ustaw właściwość HorizontalAlignment na wartość Left lub Right (ustawienie wyrównania zależy od tego, które dwie kolumny chcesz zmienić). Na koniec ustaw właściwość VerticalAlignment na wartość Stretch.

<GridSplitter Grid.Column="1" 
              Grid.RowSpan="3" 
              HorizontalAlignment="Left" 
              VerticalAlignment="Stretch"
              Background="Black" 
              ShowsPreview="true"
              Width="5"/>

Element GridSplitter , który nie ma własnej kolumny, może zostać zasłonięte przez inne kontrolki w kontrolce Grid. Aby uzyskać więcej informacji na temat zapobiegania temu problemowi, zobacz Upewnij się, że gridSplitter jest widoczny.

Jak utworzyć gridSplitter, który zajmuje kolumnę

Aby określić obiekt GridSplitter , który zajmuje kolumnę w obiekcie Grid, Column ustaw właściwość attached na jedną z kolumn, której rozmiar chcesz zmienić. Jeśli obiekt Grid ma więcej niż jeden wiersz, ustaw właściwość RowSpan attached na liczbę wierszy. Następnie ustaw właściwość HorizontalAlignment na Centerwartość , StretchVerticalAlignment a właściwość na , Width a właściwość kolumny zawierającej element na GridSplitter wartość Auto.

W poniższym przykładzie pokazano, jak zdefiniować pionową GridSplitter kolumnę, która zajmuje kolumnę i zmienia rozmiar kolumn po obu stronach.

<Grid.ColumnDefinitions>
  <ColumnDefinition/>
  <ColumnDefinition Width="Auto" />
  <ColumnDefinition/>
</Grid.ColumnDefinitions>
<GridSplitter Grid.Column="1"
              HorizontalAlignment="Center"
              VerticalAlignment="Stretch"
              Background="Black" 
              ShowsPreview="True"
              Width="5"
              />

Zobacz też