次の方法で共有


方法: GridSplitter を使用して行のサイズを変更する

この例では、水平GridSplitterを使用して、Gridのディメンションを変更せずに、Grid内の 2 つの行間のスペースを再配布する方法を示します。

行の端をオーバーレイする GridSplitter を作成する方法

GridSplitter内の隣接する行のサイズを変更するGridを指定するには、Row添付プロパティをサイズ変更する行のいずれかに設定します。 Gridに複数の列がある場合は、ColumnSpan添付プロパティを設定して列数を指定します。 次に、 VerticalAlignmentTop または Bottom に設定します (どの配置を設定するかは、サイズを変更する 2 行によって異なります)。 最後に、 HorizontalAlignment プロパティを Stretch に設定します。

次の例は、隣接する行のサイズを変更する水平方向の GridSplitter を定義する方法を示しています。

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

独自の行を占有しない GridSplitter は、 Grid内の他のコントロールによって隠される可能性があります。 この問題を回避する方法の詳細については、「 GridSplitter が表示されていることを確認する」を参照してください。

行を占有する GridSplitter を作成する方法

GridSplitterの行を占有するGridを指定するには、Row添付プロパティをサイズ変更する行のいずれかに設定します。 Gridに複数の列がある場合は、ColumnSpan添付プロパティを列数に設定します。 次に、VerticalAlignmentCenter に設定し、HorizontalAlignment プロパティを Stretch に設定し、Heightを含む行のGridSplitterAuto に設定します。

次の例は、行を占有し、行の両側の行のサイズを変更する水平方向の GridSplitter を定義する方法を示しています。

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

こちらも参照ください