本主题提供了关于定制列的对齐方式和大小的信息。 注意,行的布局也可以被修改。 要获得关于如何执行此操作的细节,请参阅 行的布局 主题。
列的布局
列的布局定制依赖于列的自动宽度功能。 首先让我们考虑禁用自动列宽的情况。 这不是默认的行为,但是因为它易于理解,因此首先考虑。
按照由 GridColumn.VisibleIndex 属性指定的顺序号,列被接连排列。 它们的宽度由 GridColumn.Width 属性指定。
启用自动列宽功能,则按比例调整列宽,因此它们的总宽度等于视图的宽度。 在这种情况下,即使调整了某列的列宽,列占用的总宽度也不会改变。 这是通过改变其他列的宽度来达成的。 要启用该功能,则把视图的 GridOptionsView.ColumnAutoWidth 选项设置为 true。
如果启用了自动列宽功能,则列的 GridColumn.Width 属性不包含它的可视宽度,但是该值用于在禁用自动列宽时恢复列的布局。 通过 GridColumn.VisibleWidth 属性来访问列的可视宽度。 但是要注意,在启用自动列宽后,调整列宽 (例如加大容器的宽度) 会导致重新计算所有列的宽度。 结果,GridColumn.Width 和 GridColumn.VisibleWidth 属性都被设置为相同的值。 在执行此操作之后,禁用自动列宽也不会恢复初始的列宽度。 仅只是取消“列的总宽度与视图的宽度相匹配”这一限制。
下面的插图展示了在初期显示的视图上启用自动列宽的效果,并且也举例说明了在 GridColumn.Width 和 GridColumn.VisibleWidth 属性之间的关系。
最适合的列宽
网格视图允许把“最适合的列宽”功能立即应用到个别列或所有列。 当此功能被应用到列时,该列的宽度被改变,以适合其内容 (服从最小宽度限制)。 在默认情况下,所有列的取值都被处理,并且列宽被设置为任何单元格所需的最大宽度。 出于性能原因,可以通过设置视图的 GridView.BestFitMaxRowCount 属性,在应用“最适合的列宽”功能时限制参与计算的记录数。 在默认情况下,该属性值是 -1,指明所有的数据行都将被处理。 如果设置为一个正整数,则视图从顶部可视行开始,处理指定数目的数据行。
最终用户可以使用列标头面板的弹出式菜单,把“最适合的列宽”立即应用到一个列或所有列。 请参阅 弹出式菜单概述 主题获知细节。 也可以使用视图的 GridView.BestFitColumns 方法或列的 GridColumn.BestFit 方法在代码中应用此功能。
在启用自动列宽之后,应用“最适合的列宽”功能时需要特别留意。 按照上述说明,这种情况下列的总宽度始终等于视图的宽度。 因此,如果视图的宽度不足,则应用“最适合的列宽”时可能不显示完整的单元格内容。 另一方面,列宽可能会大于适合于其内容所需的宽度。 列的必要宽度被计算,并且按比例应用,因此总列宽就是视图的宽度。 下面的插图展示了一个示例。
固定的宽度
可以强制使列有固定的宽度。 启用列的 OptionsColumn.FixedWidth 选项来实现此目的。 如果启用了此选项,则列的宽度不受自动列宽和“最适合的列宽”功能的影响。 最终用户可以调整列宽,而不考虑此选项的设置。 要禁止调整列宽,则使用列的 OptionsColumn.AllowSize 选项。