Sdílet prostřednictvím


Postupy: Změna velikosti řádků pomocí objektu GridSplitter

Tento příklad ukazuje, jak použít vodorovnou GridSplitter k redistribuci mezery mezi dvěma řádky v Grid beze změny dimenzí Grid.

Příklad

Vytvoření objektu GridSplitter, který překrytí okraje řádku

Chcete-li zadat GridSplitter, který změní velikost sousedních řádků v Grid, nastavte Row připojenou vlastnost na jeden z řádků, které chcete změnit velikost. Pokud má Grid více než jeden sloupec, nastavte vlastnost ColumnSpan připojenou tak, aby určila počet sloupců. Potom nastavte VerticalAlignment na Top nebo Bottom (které zarovnání nastavíte, závisí na tom, které dva řádky chcete změnit velikost). Nakonec nastavte vlastnost HorizontalAlignment na Stretch.

Následující příklad ukazuje, jak definovat vodorovnou GridSplitter, která mění velikost sousedních řádků.

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

GridSplitter, který nezabírá vlastní řádek, může být skryt jinými ovládacími prvky v Grid. Další informace o tom, jak zabránit tomuto problému, naleznete v tématu Ujistěte se, že gridSplitter je viditelný.

Jak vytvořit objekt GridSplitter, který zabírá řádek

Chcete-li určit GridSplitter, který zabírá řádek v Grid, nastavte připojenou vlastnost Row na jeden z řádků, které chcete upravit velikostí. Pokud má váš Grid více než jeden sloupec, nastavte připojenou vlastnost ColumnSpan na počet sloupců. Potom nastavte VerticalAlignment na Center, nastavte vlastnost HorizontalAlignment na Stretcha nastavte Height řádku, který obsahuje GridSplitter na Auto.

Následující příklad ukazuje, jak definovat vodorovnou GridSplitter, která zabírá řádek a změní velikost řádků na obou stranách.

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

Viz také