Set Grid Row Height and Column Width to Auto


   
       
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid Background="Beige" ShowGridLines="True">
  <Grid.Resources>
    <Style TargetType="TextBlock">
      <Setter Property="Margin" Value="5,3" />
    </Style>
  </Grid.Resources>

  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition />
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
  </Grid.RowDefinitions>

  <TextBlock Grid.Column="0" Grid.Row="0">Key:</TextBlock>
  <TextBlock Grid.Column="1" Grid.Row="0">Value</TextBlock>
  <TextBlock Grid.Column="0" Grid.Row="1">A:</TextBlock>
  <TextBlock Grid.Column="1" Grid.Row="1">a</TextBlock>
  <TextBlock Grid.Column="0" Grid.Row="2">B:</TextBlock>
  <TextBlock Grid.Column="1" Grid.Row="2">b</TextBlock>

</Grid>



</Page>

   
    
    
    
    
    
    
     


Using Grid.ColumnSpan


   
       
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid Background="Beige">
  <Grid.Resources>
    <Style TargetType="TextBlock">
      <Setter Property="Margin" Value="5,3" />
    </Style>
  </Grid.Resources>

  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition />
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
  </Grid.RowDefinitions>


  <TextBlock Grid.Column="0" Grid.Row="0">A:</TextBlock>
  <TextBlock Grid.Column="1" Grid.Row="0">a</TextBlock>
  <Rectangle Grid.Row="1" Grid.ColumnSpan="2" Margin="5" Height="1" Fill="Black" />
  <TextBlock Grid.Column="0" Grid.Row="2">B:</TextBlock>
  <TextBlock Grid.Column="1" Grid.Row="2">b</TextBlock>
  <TextBlock Grid.Column="0" Grid.Row="3">C:</TextBlock>
  <TextBlock Grid.Column="1" Grid.Row="3">c</TextBlock>
  <TextBlock Grid.Column="0" Grid.Row="4">D:</TextBlock>
  <TextBlock Grid.Column="1" Grid.Row="4">d</TextBlock>
  <Rectangle Grid.Row="5" Grid.ColumnSpan="2" Margin="5" Height="1" Fill="Black" />
  <TextBlock Grid.Column="0" Grid.Row="6">E:</TextBlock>
  <TextBlock Grid.Column="1" Grid.Row="6">e</TextBlock>
  <TextBlock Grid.Column="0" Grid.Row="7">F:</TextBlock>
  <TextBlock Grid.Column="1" Grid.Row="7">f</TextBlock>

</Grid>
</Page>

   
    
    
    
    
    
    
     


Define rows / columns for Grid


   
       
<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Fun with Panels!" Height="186" Width="501">

<Grid ShowGridLines ="True" Background ="AliceBlue">

  <Grid.ColumnDefinitions>
    <ColumnDefinition/>
    <ColumnDefinition/>
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
    <RowDefinition/>
    <RowDefinition/>
  </Grid.RowDefinitions>

  <Label Name="lblInstruction" Grid.Column ="0" Grid.Row ="0" FontSize="15">Enter</Label>
  <Button Name="btnOK"  Height ="30" Grid.Column ="0" Grid.Row ="0" >OK</Button>
  <Label Name="lblMake" Grid.Column ="1" Grid.Row ="0">Make</Label>
  <TextBox Name="txtMake" Grid.Column ="1" Grid.Row ="0" Width="193" Height="25"/>
  <Label Name="lblColor" Grid.Column ="0" Grid.Row ="1" >Color</Label>
  <TextBox Name="txtColor" Width="190" Height="25" Grid.Column ="0" Grid.Row ="1" />

  <Rectangle Fill ="LightGreen" Grid.Column ="1" Grid.Row ="1" />
  <Label Name="lblPetName" Grid.Column ="1" Grid.Row ="1" >Name</Label>
  <TextBox Name="txtPetName" Grid.Column ="1" Grid.Row ="1" Width="193" Height="25"/>

</Grid>
</Window>

   
    
    
    
    
    
    
     


Use GridSplitter


   
       
<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Grid" Height="300" Width="300">
    <Grid Background="AliceBlue">
        <Grid.ColumnDefinitions>
            <ColumnDefinition MinWidth="100" MaxWidth="200" />
            <ColumnDefinition MaxWidth="100" />
            <ColumnDefinition Width="50" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="50" />
            <RowDefinition MinHeight="100" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Ellipse Grid.Row="0" Grid.Column="0" Fill="BlanchedAlmond" Stroke="Black" />
        <Ellipse Grid.Row="0" Grid.Column="1" Fill="Red"  Stroke="Black" />
        <Ellipse Grid.Row="0" Grid.Column="2" Fill="BlanchedAlmond" Stroke="Black" />
        <Ellipse Grid.Row="0" Grid.Column="3" Fill="BurlyWood" Stroke="Black" />
        <Ellipse Grid.Row="1" Grid.Column="0" Fill="BurlyWood" Stroke="Black" />
        <Ellipse Grid.Row="1" Grid.Column="1" Fill="BlanchedAlmond" Stroke="Black" />
        <Ellipse Grid.Row="1" Grid.Column="2" Fill="BurlyWood" Stroke="Black" />
        <Ellipse Grid.Row="1" Grid.Column="3" Fill="Red" Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="0" Fill="BlanchedAlmond" Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="1" Fill="BurlyWood"  Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="2" Fill="BlanchedAlmond" Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="3" Fill="Red" Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" Fill="Gold"  Stroke="Black" Height="50"/>
        <GridSplitter Grid.RowSpan="3" Width="10" BorderThickness="2" Grid.IsSharedSizeScope="True">
            <GridSplitter.BorderBrush>
                <SolidColorBrush Color="Black" />
            </GridSplitter.BorderBrush>
        </GridSplitter>
    </Grid>
</Window>

   
    
    
    
    
    
    
     


Align Ellipses along with Grid


   
       
<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Grid" Height="300" Width="300">
    <Grid Background="AliceBlue">
        <Grid.ColumnDefinitions>
            <ColumnDefinition MinWidth="100" MaxWidth="200" />
            <ColumnDefinition MaxWidth="100" />
            <ColumnDefinition Width="50" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="50" />
            <RowDefinition MinHeight="100" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Ellipse Grid.Row="0" Grid.Column="0" Fill="Red" Stroke="Black" />
        <Ellipse Grid.Row="0" Grid.Column="1" Fill="BurlyWood"  Stroke="Black" />
        <Ellipse Grid.Row="0" Grid.Column="2" Fill="BlanchedAlmond" Stroke="Black" />
        <Ellipse Grid.Row="0" Grid.Column="3" Fill="BurlyWood" Stroke="Black" />
        <Ellipse Grid.Row="1" Grid.Column="0" Fill="BurlyWood" Stroke="Black" />
        <Ellipse Grid.Row="1" Grid.Column="1" Fill="Red" Stroke="Black" />
        <Ellipse Grid.Row="1" Grid.Column="2" Fill="BurlyWood" Stroke="Black" />
        <Ellipse Grid.Row="1" Grid.Column="3" Fill="BlanchedAlmond" Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="0" Fill="BlanchedAlmond" Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="1" Fill="BurlyWood"  Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="2" Fill="Red" Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="3" Fill="BurlyWood" Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" Fill="Gold"  Stroke="Black" Height="50"/>
        <GridSplitter Grid.RowSpan="3" Width="10" BorderThickness="2" Grid.IsSharedSizeScope="True">
            <GridSplitter.BorderBrush>
                <SolidColorBrush Color="Black" />
            </GridSplitter.BorderBrush>
        </GridSplitter>
    </Grid>
</Window>

   
    
    
    
    
    
    
     


Grid with Column Definition and Row definition


   
       
<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Grid" Height="300" Width="300">
    <Grid Background="AliceBlue">
        <Grid.ColumnDefinitions>
            <ColumnDefinition MinWidth="100" MaxWidth="200" />
            <ColumnDefinition MaxWidth="100" />
            <ColumnDefinition Width="50" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="50" />
            <RowDefinition MinHeight="100" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Ellipse Grid.Row="0" Grid.Column="0" Fill="BlanchedAlmond" Stroke="Black" />
        <Ellipse Grid.Row="0" Grid.Column="1" Fill="BurlyWood"  Stroke="Black" />
        <Ellipse Grid.Row="0" Grid.Column="2" Fill="Red" Stroke="Black" />
        <Ellipse Grid.Row="0" Grid.Column="3" Fill="BurlyWood" Stroke="Black" />
        <Ellipse Grid.Row="1" Grid.Column="0" Fill="BurlyWood" Stroke="Black" />
        <Ellipse Grid.Row="1" Grid.Column="1" Fill="Red" Stroke="Black" />
        <Ellipse Grid.Row="1" Grid.Column="2" Fill="BurlyWood" Stroke="Black" />
        <Ellipse Grid.Row="1" Grid.Column="3" Fill="BlanchedAlmond" Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="0" Fill="BlanchedAlmond" Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="1" Fill="Red"  Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="2" Fill="BlanchedAlmond" Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="3" Fill="BurlyWood" Stroke="Black" />
        <Ellipse Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" Fill="Gold"  Stroke="Black" Height="50"/>
    </Grid>
</Window>

   
    
    
    
    
    
    
     


Arrange UI Elements in a Grid


   
       

<Window x:Class="Main"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF" Height="200" Width="250">
    <Grid ShowGridLines="True">
        <Grid.RowDefinitions>
            <RowDefinition MinHeight="50" />
            <RowDefinition Height="2*" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="50" />
            <ColumnDefinition Width="2*" />
            <ColumnDefinition Width="3*" />
        </Grid.ColumnDefinitions>
        <Button Content="Button spanning 3 rows" Grid.RowSpan="3">
            <Button.LayoutTransform>
                <RotateTransform Angle="90" />
            </Button.LayoutTransform>
        </Button>
        <Button Content="Button spanning 2 columns" Grid.Column="1" 
                Grid.Row="0" Grid.ColumnSpan="2" />
        <Button Content="Button" Grid.Column="2" Grid.Row="2"/>
    </Grid>
</Window>