ColumnDefinition Class
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Defines column-specific properties that apply to Grid objects.
Assembly: System.Windows (in System.Windows.dll)
XMLNS for XAML: Not mapped to an xmlns.
The ColumnDefinition type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | ActualWidth | Gets a value that represents the actual calculated width of a ColumnDefinition. |
![]() | Dispatcher | Gets the Dispatcher this object is associated with. (Inherited from DependencyObject.) |
![]() | MaxWidth | Gets or sets a value that represents the maximum width of a ColumnDefinition. |
![]() | MinWidth | Gets or sets a value that represents the minimum width of a ColumnDefinition. |
![]() | Width | Gets the calculated width of a ColumnDefinition element, or sets the GridLength value of a column that is defined by the ColumnDefinition. |
| Name | Description | |
|---|---|---|
![]() | CheckAccess | Determines whether the calling thread has access to this object. (Inherited from DependencyObject.) |
![]() | ClearValue | Clears the local value of a dependency property. (Inherited from DependencyObject.) |
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetAnimationBaseValue | Returns any base value established for a Windows Phone dependency property, which would apply in cases where an animation is not active. (Inherited from DependencyObject.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | GetValue | Returns the current effective value of a dependency property from a DependencyObject. (Inherited from DependencyObject.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ReadLocalValue | Returns the local value of a dependency property, if a local value is set. (Inherited from DependencyObject.) |
![]() | SetValue | Sets the local value of a dependency property on a DependencyObject. (Inherited from DependencyObject.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | MaxWidthProperty | Identifies the MaxWidth dependency property. |
![]() ![]() | MinWidthProperty | Identifies the MinWidth dependency property. |
![]() ![]() | WidthProperty | Identifies the Width dependency property. |
You can set a ColumnDefinition for each column in a Grid. If you do not specify a ColumnDefinition, by default the Grid will contain a single column with star sized width.
To set a group of ColumnDefinition elements by using code, add the ColumnDefinition to a ColumnDefinitionCollection.
ColumnDefinition uses a GridLength structure to describe its width characteristics. GridLength allows a ColumnDefinition to support variable distribution of available space.
The following example uses three ColumnDefinitions and three RowDefinitions to create a grid that has nine cells, such as in a worksheet. Each cell contains a TextBlock element that represents data, and the top row contains a TextBlock with the ColumnSpan property applied. To show the boundaries of each cell, the ShowGridLines property is enabled.
<Grid Background="Transparent" VerticalAlignment="Top" HorizontalAlignment="Left" ShowGridLines="True" Width="350" Height="200"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="20" FontWeight="Bold" Grid.ColumnSpan="3" Grid.Row="0">Expenses for 2007</TextBlock> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="15" FontWeight="Bold" Grid.Row="1" Grid.Column="0">Travel</TextBlock> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="15" FontWeight="Bold" Grid.Row="1" Grid.Column="1">Office Supplies</TextBlock> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="15" FontWeight="Bold" Grid.Row="1" Grid.Column="2">Salary</TextBlock> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="2" Grid.Column="0">20000</TextBlock> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="2" Grid.Column="1">10000</TextBlock> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="2" Grid.Column="2">50000</TextBlock> <TextBlock FontSize="16" FontWeight="Bold" Grid.ColumnSpan="3" Grid.Row="3">Total Expense: 80000</TextBlock> </Grid>
public Page() { InitializeComponent(); CreateGrid(); } private void CreateGrid() { // Create the Grid Grid myGrid = new Grid(); myGrid.Width = 350; myGrid.Height = 200; myGrid.HorizontalAlignment = HorizontalAlignment.Left; myGrid.VerticalAlignment = VerticalAlignment.Top; myGrid.ShowGridLines = true; SolidColorBrush myBrush = new SolidColorBrush(Colors.White); myGrid.Background = myBrush; // Define the Columns ColumnDefinition colDef1 = new ColumnDefinition(); ColumnDefinition colDef2 = new ColumnDefinition(); ColumnDefinition colDef3 = new ColumnDefinition(); myGrid.ColumnDefinitions.Add(colDef1); myGrid.ColumnDefinitions.Add(colDef2); myGrid.ColumnDefinitions.Add(colDef3); // Define the Rows RowDefinition rowDef1 = new RowDefinition(); RowDefinition rowDef2 = new RowDefinition(); RowDefinition rowDef3 = new RowDefinition(); RowDefinition rowDef4 = new RowDefinition(); myGrid.RowDefinitions.Add(rowDef1); myGrid.RowDefinitions.Add(rowDef2); myGrid.RowDefinitions.Add(rowDef3); myGrid.RowDefinitions.Add(rowDef4); // Add the first text cell to the Grid TextBlock txt1 = new TextBlock(); txt1.Text = "Expenses for 2007"; txt1.FontSize = 20; txt1.FontWeight = FontWeights.Bold; Grid.SetColumnSpan(txt1, 3); Grid.SetRow(txt1, 0); txt1.HorizontalAlignment = HorizontalAlignment.Center; txt1.VerticalAlignment = VerticalAlignment.Center; // Add the second text cell to the Grid TextBlock txt2 = new TextBlock(); txt2.Text = "Travel"; txt2.FontSize = 15; txt2.FontWeight = FontWeights.Bold; Grid.SetRow(txt2, 1); Grid.SetColumn(txt2, 0); txt2.HorizontalAlignment = HorizontalAlignment.Center; txt2.VerticalAlignment = VerticalAlignment.Center; // Add the third text cell to the Grid TextBlock txt3 = new TextBlock(); txt3.Text = "Office Supplies"; txt3.FontSize = 15; txt3.FontWeight = FontWeights.Bold; Grid.SetRow(txt3, 1); Grid.SetColumn(txt3, 1); txt3.HorizontalAlignment = HorizontalAlignment.Center; txt3.VerticalAlignment = VerticalAlignment.Center; // Add the fourth text cell to the Grid TextBlock txt4 = new TextBlock(); txt4.Text = "Salary"; txt4.FontSize = 15; txt4.FontWeight = FontWeights.Bold; Grid.SetRow(txt4, 1); Grid.SetColumn(txt4, 2); txt4.HorizontalAlignment = HorizontalAlignment.Center; txt4.VerticalAlignment = VerticalAlignment.Center; // Add the sixth text cell to the Grid TextBlock txt5 = new TextBlock(); Double db1 = new Double(); db1 = 20000; txt5.Text = db1.ToString(); Grid.SetRow(txt5, 2); Grid.SetColumn(txt5, 0); txt5.HorizontalAlignment = HorizontalAlignment.Center; txt5.VerticalAlignment = VerticalAlignment.Center; // Add the seventh text cell to the Grid TextBlock txt6 = new TextBlock(); Double db2 = new Double(); db2 = 10000; txt6.Text = db2.ToString(); Grid.SetRow(txt6, 2); Grid.SetColumn(txt6, 1); txt6.HorizontalAlignment = HorizontalAlignment.Center; txt6.VerticalAlignment = VerticalAlignment.Center; // Add the final text cell to the Grid TextBlock txt7 = new TextBlock(); Double db3 = new Double(); db3 = 50000; txt7.Text = db3.ToString(); Grid.SetRow(txt7, 2); Grid.SetColumn(txt7, 2); txt7.HorizontalAlignment = HorizontalAlignment.Center; txt7.VerticalAlignment = VerticalAlignment.Center; // Total all Data and Span Three Columns TextBlock txt8 = new TextBlock(); txt8.FontSize = 16; txt8.FontWeight = FontWeights.Bold; txt8.Text = "Total Units: " + (db1 + db2 + db3).ToString(); Grid.SetRow(txt8, 3); Grid.SetColumnSpan(txt8, 3); // Add the TextBlock elements to the Grid Children collection myGrid.Children.Add(txt1); myGrid.Children.Add(txt2); myGrid.Children.Add(txt3); myGrid.Children.Add(txt4); myGrid.Children.Add(txt5); myGrid.Children.Add(txt6); myGrid.Children.Add(txt7); myGrid.Children.Add(txt8); LayoutRoot.Children.Add(myGrid); }




