Gewusst wie: Änderung der Spaltengröße mit einem GridSplitter

Dieses Beispiel zeigt, wie Sie eine Vertikale in GridSplitter erstellen können, um den Platz zwischen zwei Spalten in einer Grid neu zu verteilen, ohne die Abmessungen der Grid zu ändern.

Beispiel

Erstellen eines GridSplitter-Elements, das den Rand einer Spalte überlagert

Um eine GridSplitter anzugeben, die die Größe benachbarter Spalten in einem Grid ändert, setzen Sie die angehängte Eigenschaft Column auf eine der Spalten, deren Größe Sie ändern möchten. Wenn Grid mehr als eine Zeile hat, setzen Sie die angehängte Eigenschaft RowSpan auf die Anzahl der Zeilen. Setzen Sie dann die HorizontalAlignment-Eigenschaft auf Left oder Right (welche Ausrichtung Sie einstellen, hängt davon ab, welche beiden Spalten Sie in der Größe verändern möchten). Schließlich setzen Sie die VerticalAlignment-Eigenschaft auf Stretch.

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

Ein GridSplitter, das keine eigene Spalte hat, kann durch andere Steuerelemente in der Grid. Weitere Informationen zum Vermeiden dieses Problems finden Sie unter Sicherstellen, dass ein GridSplitter sichtbar ist.

Erstellen eines GridSplitter-Elements, das eine Spalte einnimmt

Um eine GridSplitter anzugeben, die eine Spalte in einem Grid belegt, setzen Sie die angehängte Eigenschaft Column auf eine der Spalten, deren Größe Sie ändern möchten. Wenn Ihr Raster mehr als eine Zeile hat, setzen Sie die angehängte Eigenschaft RowSpan auf die Anzahl der Zeilen. Setzen Sie dann HorizontalAlignment auf Center, setzen Sie die VerticalAlignment-Eigenschaft auf Stretch, und setzen Sie die Width der Spalte, die die GridSplitter enthält, auf Auto.

Das folgende Beispiel zeigt, wie ein vertikales GridSplitter-Element definiert wird, das eine Spalte einnimmt und die Größe der Spalten auf beiden Seiten davon ändert.

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

Weitere Informationen