如何:使用 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 可见

如何创建占据一列的 GridSplitter

若要指定在 Grid 中占据一列的 GridSplitter,请将 Column 附加属性设置为要重设大小的列之一。 如果 Grid 超过一行,请将 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"
              />

另请参阅