Windows apps
Collapse the table of content
Expand the table of content
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

GridLength Structure

Represents the length of elements that explicitly support Star unit types.

Namespace:  System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)

<TypeConverterAttribute(GetType(GridLengthConverter))> _
Public Structure GridLength _
	Implements IEquatable(Of GridLength)
<object property="doubleLength"/>
- or -
<object property="autoValue"/>

XAML Values


The element’s length, described as either a Double value that specifies a device-independent units (1/96th inch per unit) measure, or as a qualifiedDouble (see below).


The element's length, described by either the value Auto or *. See GridUnitType for more information on the values Auto and *.


A double value as described above for any of the measures, followed by one of the following unit declaration strings: px, in, cm, pt.

px (default) is device-independent units (1/96th inch per unit)

in is inches; 1in==96px

cm is centimeters; 1cm==(96/2.54) px

pt is points; 1pt==(96/72) px

The GridLength type exposes the following members.

Public methodGridLength(Double)Initializes a new instance of the GridLength structure using the specified absolute value in pixels.
Public methodGridLength(Double, GridUnitType)Initializes a new instance of the GridLength structure and specifies what kind of value it holds.

Public propertyStatic memberAutoGets an instance of GridLength that holds a value whose size is determined by the size properties of the content object.
Public propertyGridUnitTypeGets the associated GridUnitType for the GridLength.
Public propertyIsAbsoluteGets a value that indicates whether the GridLength holds a value that is expressed in pixels.
Public propertyIsAutoGets a value that indicates whether the GridLength holds a value whose size is determined by the size properties of the content object.
Public propertyIsStarGets a value that indicates whether the GridLength holds a value that is expressed as a weighted proportion of available space.
Public propertyValueGets a Double that represents the value of the GridLength.

Public methodEquals(GridLength)Determines whether the specified GridLength is equal to the current GridLength.
Public methodEquals(Object)Determines whether the specified object is equal to the current GridLength instance. (Overrides ValueType.Equals(Object).)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeGets a hash code for the GridLength. (Overrides ValueType.GetHashCode.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a String representation of the GridLength. (Overrides ValueType.ToString.)

Public operatorStatic memberEqualityCompares two GridLength structures for equality.
Public operatorStatic memberInequalityCompares two GridLength structures to determine if they are not equal.

Elements such as ColumnDefinition and RowDefinition use this type to describe width and height in order to support variable distribution of available space.

The following example shows how to create and use an instance of GridLengthConverter. The example defines a custom method called changeCol, which passes the ListBoxItem to a GridLengthConverter that converts the Content of a ListBoxItem to an instance of GridLength. The converted value is then passed back as the value of the Width property of the ColumnDefinition element.

The example also defines a second custom method, called changeColVal. This custom method converts the Value of a Slider to a String and then passes that value back to the ColumnDefinition as the Width of the element.

Note that a separate Extensible Application Markup Language (XAML) file defines the contents of a ListBoxItem.

Private Sub changeColVal(ByVal sender As Object, ByVal args As RoutedPropertyChangedEventArgs(Of Double))

    txt1.Text = "Current Grid Column is " + hs1.Value.ToString()
End Sub

Private Sub changeCol(ByVal sender As Object, ByVal args As SelectionChangedEventArgs)

    Dim li1 As ListBoxItem = CType(CType(sender, ListBox).SelectedItem, ListBoxItem)
    Dim myGridLengthConverter As System.Windows.GridLengthConverter = New System.Windows.GridLengthConverter()
    If (hs1.Value = 0) Then

        Dim gl1 As GridLength = CType(myGridLengthConverter.ConvertFromString(li1.Content.ToString()), GridLength)
        col1.Width = gl1

    ElseIf (hs1.Value = 1) Then

        Dim gl2 As GridLength = CType(myGridLengthConverter.ConvertFromString(li1.Content.ToString()), GridLength)
        col2.Width = gl2

    ElseIf (hs1.Value = 2) Then

        Dim gl3 As GridLength = CType(myGridLengthConverter.ConvertFromString(li1.Content.ToString()), GridLength)
        col3.Width = gl3
    End If
End Sub

More Code

How to: Build a Standard UI Dialog Box by Using GridThis example shows how to create a standard user interface (UI) dialog box by using the Grid element.

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Community Additions

© 2017 Microsoft