GridLength structure
Represents a measurement for control logc that explicitly supports Star (*) sizing and Auto sizing.
Syntax
<GridLength ...>doubleValue</GridLength> - or - <GridLength ...>starSizing</GridLength> - or - <GridLength ...>Auto</GridLength>
<object property="doubleValue"/> - or - <object property="starSizing"/> -or- <object property="Auto"/>
XAML Values
- doubleValue
-
The row's height or column's width, expressed as a floating-point value for a pixel count. Typically this is specified as an integer, although interpolation of floating-point values is supported by grid layout.
- starSizing
-
A string that includes the
*character. Sizes rows or columns to take the remaining available space in a Grid. The*can be prepended by a numeric factor that distributes available space in relation to any other star sizings in other peer rows or columns. For example, if Column A has star sizing of*and Column B has star sizing of2*, then Column A receives one-third the available space and Column B receives two-thirds. - Auto
-
The column's width or the row's height, described by the literal "Auto". Auto sizing distributes space evenly based on the size of the content that is within a column or row.
Attributes
- VersionAttribute(NTDDI_WIN8)
- WebHostHiddenAttribute()
Members
The GridLength structure has these types of members:
Constructors
The GridLength structure has these constructors.
| Constructor | Description |
|---|---|
| GridLength(Double) | Initializes a new GridLength structure, using the specified absolute value in pixels. |
| GridLength(Double, GridUnitType) | Initializes a new GridLength structure and specifies what kind of value it holds. |
Fields
The GridLength structure has these fields.
| Field | Data type | Description |
|---|---|---|
| GridUnitType |
A value of the GridUnitType enumeration that qualifies how Value is interpreted as a measure. | |
| Value |
System.Double [.NET] | float64 [C++] |
The measure for this GridLength, which is not necessarily a pixel measure. |
Methods
The GridLength structure has these methods. It also inherits methods from the Object class.
| Method | Description |
|---|---|
| Equals(Object) [C#, VB] | Determines whether the specified object is equal to a GridLength. |
| GetHashCode [C#, VB] | Gets a hash code for this object. |
| ToString [C#, VB] | Converts a GridLength to a String representation. |
Operators
The GridLength structure has these operators.
| Operator | Description |
|---|---|
| Equality | Compares two GridLength structures for equality. |
| Inequality | Compares two GridLength structures for inequality. |
Properties
The GridLength structure has these properties.
| Property | Access type | Description |
|---|---|---|
| Read-only | Gets an instance of GridLength that holds a value whose size is determined by the size properties of the content object. | |
| Read-only | Gets the associated GridUnitType for the GridLength. | |
| Read-only | Gets a value that indicates whether the GridLength holds a value that represents an absolute measure in pixels. | |
| Read-only | Gets a value that indicates whether the GridLength holds a value whose size is determined by the size properties of the content object where the GridLength applies. | |
| Read-only | Gets a value that indicates whether the GridLength holds a value that is expressed as a weighted proportion of available space. | |
| Read-only | Gets a Double that represents the value of the GridLength. |
Remarks
Types such as ColumnDefinition and RowDefinition use GridLength values. These values are used to support variable distribution of available space in layout containers such as Grid and derived types. A GridLength can describe one of three mutually exclusive options for sizing: a fixed width, a weighted distribution, or an "Auto" sizing mode.
GridLength values are typically declared in XAML attribute syntax. In XAML, the weighted distribution is declared using a "*" symbol, preceded by a number that declares the weighting factor to use for that GridLength. The weighted distribution option is also known as star sizing.
The data values held by a GridLength (Value and GridUnitType) are both read-only. If you want to change the value of a property that takes a GridLength at run time, you'll have to create a new value using one of the constructors and replace the previous value.
Star sizing
Star sizing is a convention whereby a GridLength has a number value that specifies a weighted factor versus other GridLength values. Any GridLength values that use star sizing divide the available space, accounting for the weighting factors, and evaluating after any fixed widths are applied. If none of the star sizings have weighting factors, the height or width is divided equally amongst them. The default weighting factor is 1.
This table provides some examples of star sizing results. For these examples, assume that the parent Grid has a fixed width of 600, and that there are three columns.
| Column 0 | Column 1 | Column 2 | Result |
|---|---|---|---|
| 100 | 100 | * | 100,100,400 |
| 100 | * | * | 100,250,250 |
| 100 | * | 4* | 100,100,400 |
In code, a star sizing is equivalent to a GridLength where IsStar is true, GridUnitType is Star, and Value is the weighted factor applied.
Noninteger weighting factors are permitted, for example ".5*".
Auto sizing
Auto sizing distributes space evenly based on the size of the content that is within a column or row. The exact logic for auto sizing is implemented by the control or class using the GridLength values. Typically that class is Grid.
Notes on XAML syntax
Although you can specify a GridLength as an object element, you cannot specify the individual values such as Value as attributes of that object element. The XAML parser does not support setting XAML attribute values for this structure. Instead, you must specify the values as initialization text within the GridLength. Using the object element syntax for a GridLength is useful if you want to declare a keyed resource that can be used by multiple Grid instances as a shared row or column sizing. For more info on XAML initialization text, see Basic XAML syntax guide.
Projection and members of GridLength
If you are using a Microsoft .NET language (C# or Microsoft Visual Basic), or in Visual C++ component extensions (C++/CX), then GridLength has non-data members available, and its data members are exposed as read-only properties, not fields.
If you are programming with C++ using the Windows Runtime Template Library (WRL), then only the data member fields exist as members of GridLength, and you cannot use the utility methods or properties listed in the members table. WRL code can access similar utility methods that exist on the GridLengthHelper class, for example FromValueAndType.
Requirements
|
Minimum supported client | Windows 8 |
|---|---|
|
Minimum supported server | Windows Server 2012 |
|
Namespace |
|
|
Metadata |
|
|
Assembly |
|
See also
Build date: 1/31/2013
