Using Grid to layout all controls : Grid Row Column « Windows Presentation Foundation « C# / CSharp Tutorial






using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;

    class MainClass : Window
    {
        TextBox txtboxBegin = new TextBox();
        TextBox txtboxEnd = new TextBox();
        Label lblLifeYears  = new Label();
        [STAThread]
        public static void Main()
        {
            Application app = new Application();
            app.Run(new MainClass());
        }
        public MainClass()
        {
            SizeToContent = SizeToContent.WidthAndHeight;
            ResizeMode = ResizeMode.CanMinimize;

            Grid grid = new Grid();
            Content = grid;

            for (int i = 0; i < 2; i++)
            {
                RowDefinition rowdef = new RowDefinition();
                rowdef.Height = GridLength.Auto;
                grid.RowDefinitions.Add(rowdef);
            }

            for (int i = 0; i < 2; i++)
            {
                ColumnDefinition coldef = new ColumnDefinition();
                coldef.Width = GridLength.Auto;
                grid.ColumnDefinitions.Add(coldef);
            }
            Label lbl = new Label();
            lbl.Content = "Begin Date: ";
            grid.Children.Add(lbl);
            Grid.SetRow(lbl, 0);
            Grid.SetColumn(lbl, 0);

            txtboxBegin.Text = new DateTime(1980, 1, 1).ToShortDateString();
            txtboxBegin.TextChanged += TextBoxOnTextChanged;
            grid.Children.Add(txtboxBegin);
            Grid.SetRow(txtboxBegin, 0);
            Grid.SetColumn(txtboxBegin, 1);

            lbl = new Label();
            lbl.Content = "End Date: ";
            grid.Children.Add(lbl);
            Grid.SetRow(lbl, 1);
            Grid.SetColumn(lbl, 0);

            txtboxEnd.TextChanged += TextBoxOnTextChanged;
            grid.Children.Add(txtboxEnd);
            Grid.SetRow(txtboxEnd, 1);
            Grid.SetColumn(txtboxEnd, 1);

            Thickness thick = new Thickness(5); // ~1/20 inch.
            grid.Margin = thick;

            foreach (Control ctrl in grid.Children)
                ctrl.Margin = thick;

            txtboxBegin.Focus();
            txtboxEnd.Text = DateTime.Now.ToShortDateString();
        }
        void TextBoxOnTextChanged(object sender, TextChangedEventArgs args)
        {
            Console.WriteLine(txtboxBegin.Text);
            lblLifeYears.Content = "string";
        }
    }








24.43.Grid Row Column
24.43.1.ColumnDefinition.Width=AutoColumnDefinition.Width=Auto
24.43.2.ColumnDefinition.Width=*ColumnDefinition.Width=*
24.43.3.Bind to Grid Width and HeightBind to Grid Width and Height
24.43.4.Grid with Column Definition and Row definitionGrid with Column Definition and Row definition
24.43.5.Define rows / columns for GridDefine rows / columns for Grid
24.43.6.Using Grid.ColumnSpanUsing Grid.ColumnSpan
24.43.7.Set Grid Row Height and Column Width to AutoSet Grid Row Height and Column Width to Auto
24.43.8.Mixing row height stylesMixing row height styles
24.43.9.Set Column and Row index when adding Controls to a GridSet Column and Row index when adding Controls to a Grid
24.43.10.Empty RowDefinition and ColumnDefinitionEmpty RowDefinition and ColumnDefinition
24.43.11.Automatic Width and HeightAutomatic Width and Height
24.43.12.Span The Cells
24.43.13.Split Grid
24.43.14.Add controls to a Grid with loop
24.43.15.Set Grid Margin
24.43.16.Using Grid to layout all controls
24.43.17.Add control to specific row and column