如何:使用 GridSplitter 调整列的大小

此示例演示如何创建垂直 GridSplitter,以便重新分配 Grid 中两列之间的空间,而无需更改 Grid的尺寸。

如何创建覆盖列边缘的 GridSplitter

若要指定重设 Grid 中相邻列大小的 GridSplitter,请将 Column 附加属性设置为要重设大小的列之一。 如果 Grid 超过一行,请将 RowSpan 附加属性设置为行数。 然后将 HorizontalAlignment 属性设置为 LeftRight(设置的对齐方式取决于要调整大小的两列)。 最后,将 VerticalAlignment 属性设置为 Stretch

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

没有自己的列的 GridSplitter 可能会被 Grid 中的其他控件遮挡。 有关如何防止此问题的详细信息,请参阅 确保网格分割器可见

如何创建占据一列的 GridSplitter

若要指定在 Grid 中占据一列的 GridSplitter,请将 Column 附加属性设置为要重设大小的列之一。 如果网格有多个行,请将 RowSpan 附加属性设置为行数。 然后将 HorizontalAlignment 设置为 Center,将 VerticalAlignment 属性设置为 Stretch,并将包含 GridSplitter 的列的 Width 设置为 Auto

下面的示例演示如何定义一个占据一列并可重设列任意一侧大小的垂直 GridSplitter

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

另请参阅