GridLength 结构
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示显式支持 Star \ 大小调整和 自动 大小的控制逻辑的度量。
public value class GridLength
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
struct GridLength
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public struct GridLength
Public Structure GridLength
<object property="doubleValue"/>
- or -
<object property="starSizing"/>
-or-
<object property="Auto"/>
- 继承
-
GridLength
- 属性
示例
此示例演示如何将 XAML 中的网格列宽度设置为资源或直接设置为 Width
属性值。
<Grid>
<Grid.Resources>
<GridLength x:Key="gridLength200">200</GridLength>
<GridLength x:Key="gridLength2star">2*</GridLength>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="gridColumn0" Width="{StaticResource gridLength200}"/>
<ColumnDefinition x:Name="gridColumn1" Width="200"/>
<ColumnDefinition x:Name="gridColumn2" Width="Auto"/>
<ColumnDefinition x:Name="gridColumn3" Width="3*"/>
<ColumnDefinition x:Name="gridColumn4" Width="{StaticResource gridLength2star}"/>
<ColumnDefinition x:Name="gridColumn5" Width="*"/>
</Grid.ColumnDefinitions>
<Border Background="Red" Grid.Column="0"/>
<Border Background="Orange" Grid.Column="1"/>
<Border Background="Yellow" Grid.Column="2" Width="100"/>
<Border Background="Green" Grid.Column="3"/>
<Border Background="Blue" Grid.Column="4"/>
<Border Background="Violet" Grid.Column="5"/>
</Grid>
XAML 在 Visual Studio 设计器中生成此输出:
gridlength XAML 示例的呈现输出下面介绍如何在代码中设置相同的值。 前两个网格长度是等效的,但第一个网格长度使用简化的构造函数。
gridColumn0.Width = new GridLength(200);
gridColumn1.Width = new GridLength(200, GridUnitType.Pixel);
gridColumn2.Width = new GridLength(0, GridUnitType.Auto);
gridColumn3.Width = new GridLength(3, GridUnitType.Star);
gridColumn4.Width = new GridLength(2, GridUnitType.Star);
gridColumn5.Width = new GridLength(1, GridUnitType.Star);
注解
ColumnDefinition 和 RowDefinition 等类型 对其某些属性使用 GridLength
值(ColumnDefinition.Width 和 RowDefinition.Height)。 这些属性值用于支持布局容器中可用空间的变量分布,例如 网格(以及派生类型的 Grid
,如 VariableSizedWrapGrid)。
GridLength
可以描述三种大小调整模式之一:
- 固定宽度。
- 加权分布(大小调整)。
- 自动 大小调整模式。
GridLength
值通常在 XAML 属性语法中声明。 在 XAML 中,加权分布是使用“*”符号声明的,前面是一个数字,该数字声明用于该 GridLength
的权重因子。 加权分布选项也称为 星型调整。
GridLength
Value 保存的数据值和 GridUnitType 都是只读的。 如果要更改运行时采用 GridLength
的属性的值,则必须使用其中一个构造函数创建新值并替换以前的值。
大小调整
星型调整是一种约定,即 GridLength
具有一个数字值,该值指定加权因子与其他 GridLength
值。 使用星形调整值的任何 GridLength
值将可用空间除以考虑权重因素,并在应用任何固定宽度后进行评估。 如果任何星型都没有任何权重因素,则高度或宽度在它们之间相等。 默认权重因子为 1。
下表提供了一些星型调整结果示例。 对于这些示例,假定父 网格 的宽度为 600,并且有三列。
列 0 | 列 1 | 第 2 列 | 结果 |
---|---|---|---|
100 | 100 | * | 100,100,400 |
100 | * | * | 100,250,250 |
100 | * | 4* | 100,100,400 |
在代码中,星形大小相当于 IsStartrue
的 GridLength
,GridUnitTypeStar,值 是应用的加权因子。
允许使用非整数加权因子;例如“.5*”。
自动调整大小
自动调整大小根据列或行中内容的大小均匀分配空间。 自动调整大小的确切逻辑由控件或类使用 GridLength
值实现。 通常,该类 Grid,因为它解释其 RowDefinition,ColumnDefinition 组件。
XAML 语法说明
尽管可以将 GridLength
指定为对象元素,但不能将单个值(如 Value
)指定为该对象元素的属性。 XAML 分析程序不支持为此结构设置 XAML 属性值。 相反,必须将值指定为 GridLength
中的初始化文本。 有关 XAML 初始化文本的详细信息,请参阅 XAML 语法指南。
GridLength 的投影和成员
如果使用 C#,则 GridLength 具有可用的非数据成员,并且其数据成员公开为只读属性,而不是字段。 请参阅 .NET API 浏览器中 GridLength。
如果使用 C++/WinRT 或 Windows 运行时C++模板库(WRL)编程,则只有数据成员字段作为 GridLength
的成员存在,并且不能使用 .NET 投影的实用工具方法或属性。 C++代码可以访问 GridLengthHelper 类上存在的类似实用工具方法。
下表显示了 .NET 和 C++ 中可用的等效属性和方法。
字段
GridUnitType |
GridUnitType 枚举的值,该枚举限定 |
Value |
此 GridLength 的度量值,这不一定是像素度量值。 |
适用于
另请参阅
- Grid
- ColumnDefinition
- RowDefinition
- Width
- Height
- GridUnitType
- 使用 XAML
布局