添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

可以使用各种选项来控制 DataGrid 自己调整大小的方式。 可以将 DataGrid 以及 DataGrid 中的各个行和列设置为根据其内容自动调整大小,也可以设置为特定值。 默认情况下, DataGrid 会根据其内容的大小增大和收缩。

调整 DataGrid 大小

使用自动调整大小时的注意事项

默认情况下, DataGrid Height Width 属性设置为 Double.NaN (在 XAML 中为“ Auto ”), DataGrid 将根据其内容的大小进行调整。

当放置在不限制其子项大小的容器(例如 Canvas StackPanel )内时, DataGrid 将超出容器的可见边界,并且不会显示滚动条。 此状况可能会影响可用性和性能。

绑定到数据集时,如果 DataGrid Height 不受限制,它将继续为绑定数据集中的每个数据项添加一行。 这可能会导致在添加行时 DataGrid 超出应用程序的可见边界。 在这种情况下, DataGrid 将不会显示滚动条,因为它的 Height 将继续延伸以适应新行。

针对 DataGrid 中的每一行,会创建一个对象。 如果你使用的是大型数据集并且允许 DataGrid 自动调整自身大小,创建大量对象则可能会影响应用程序的性能。

为避免在处理大型数据集时出现这些问题,建议专门设置 DataGrid Height 或将它放置在将限制其 Height 的容器中,例如 Grid 。 当 Height 受到限制时, DataGrid 将仅创建适合其指定 Height 的行,并且将根据需要回收这些行以显示新数据。

设置 DataGrid 大小

可以将 DataGrid 设置为在指定边界内自动调整大小,也可以将 DataGrid 设置为特定大小。 下表显示了用于控制 DataGrid 大小可以设置的属性。

调整行和行标题的大小

DataGrid 行

默认情况下, DataGrid 行的 Height 属性设置为 Double.NaN (在 XAML 中为“ Auto ”),并且行高将根据其内容大小扩展。 可以通过设置 DataGrid.RowHeight 属性来指定 DataGrid 中所有行的高度。 用户可以拖动行标题分隔符来更改行高。

DataGrid 行标题

若要显示行标题,必须将 HeadersVisibility 属性设置为 DataGridHeadersVisibility.Row DataGridHeadersVisibility.All 。 行标题默认将会显示,并且它们会根据其内容自动调整大小。 可以通过设置 DataGrid.RowHeaderWidth 属性来赋予行标题特定宽度。

调整列和列标题的大小

DataGrid 列

DataGrid 使用 DataGridLength DataGridLengthUnitType 结构的值来指定绝对或自动调整大小模式。

下表显示了 DataGridLengthUnitType 结构提供的值。

DataGridLengthConverter 类可用于在数值或字符串值与 DataGridLength 值之间转换数据。

默认情况下, DataGrid.ColumnWidth 属性设置为 SizeToHeader DataGridColumn.Width 属性设置为 Auto 。当调整大小模式设置为 Auto SizeToCells 时,列将扩展到其最宽可见内容的宽度。 滚动时,如果滚动到查看范围中的内容超过了当前列的大小,那么这些大小调整模式将使列扩大。 在此内容滚动到查看范围之外后,此列也不会收缩。

还可以将 DataGrid 中的列设置为仅在指定边界内自动调整大小,或者可以将列设置为特定大小。 下表显示了用于控制列的大小可以设置的属性。

DataGrid 列标题

默认将显示 DataGrid 列标题。 若要隐藏列标题,必须将 HeadersVisibility 属性设置为 DataGridHeadersVisibility.Row DataGridHeadersVisibility.None 。 默认情况下,当显示列标题时,它们会根据其内容自动调整大小。 可以通过设置 DataGrid.ColumnHeaderHeight 属性来赋予列标题特定高度。

使用鼠标调整大小

用户可以拖动行或列标题分隔符来调整 DataGrid 行和列的大小。 DataGrid 还支持通过双击行或列标题分隔符来实现自动调整行和列的大小。 若要防止用户调整特定列的大小,对于各个列,请将 DataGridColumn.CanUserResize 属性设置为 false 。 若要防止用户调整所有列的大小,请将 DataGrid.CanUserResizeColumns 属性设置为 false 。 若要防止用户调整所有行的大小,请将 DataGrid.CanUserResizeRows 属性设置为 false

  • DataGrid
  • DataGridColumn
  • DataGridLength
  • DataGridLengthConverter
  •