Programmatically use the positioning methods of Grid

image_pdfimage_print


   
  

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="WpfApplication1.Window1"
    Title="Grid Methods Sample">
    <DockPanel VerticalAlignment="Top" HorizontalAlignment="Left">
        <Grid Margin="10" DockPanel.Dock="Left">
          <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
          </Grid.ColumnDefinitions>
          <Grid.RowDefinitions>
            <RowDefinition/>
          </Grid.RowDefinitions>
          <StackPanel Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" Orientation="Vertical">
            <Button Click="setCol0">Move Rectangle to Column 0</Button>
            <Button Click="setCol1">Move Rectangle to Column 1</Button>
            <Button Click="setCol2">Move Rectangle to Column 2</Button>
            <Button Click="setRow0">Move Rectangle to Row 0</Button>
            <Button Click="setRow1">Move Rectangle to Row 1</Button>
            <Button Click="setRow2">Move Rectangle to Row 2</Button>
            <Button Click="setColspan">Span All Columns</Button>
            <Button Click="setRowspan">Span All Rows</Button>
          </StackPanel>
        </Grid>
      <Grid DockPanel.Dock="Top" Name="grid1" ShowGridLines="True" Width="400" Height="400">
        <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
      </Grid.ColumnDefinitions>
      <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
      </Grid.RowDefinitions>
        <Rectangle Name="rect1" Fill="Silver" Grid.Column="0" Grid.Row="0"/>
        <TextBlock FontSize="15" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Column="0" Grid.Row="0" Margin="5">Column 0, Row 0</TextBlock>
        <TextBlock FontSize="15" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Column="1" Grid.Row="0" Margin="5">Column 1, Row 0</TextBlock>
        <TextBlock FontSize="15" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Column="2" Grid.Row="0" Margin="5">Column 2, Row 0</TextBlock>
        <TextBlock FontSize="15" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Column="0" Grid.Row="1" Margin="5">Column 0, Row 1</TextBlock>
        <TextBlock FontSize="15" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Column="1" Grid.Row="1" Margin="5">Column 1, Row 1</TextBlock>
        <TextBlock FontSize="15" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Column="2" Grid.Row="1" Margin="5">Column 2, Row 1</TextBlock>
        <TextBlock FontSize="15" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Column="0" Grid.Row="2" Margin="5">Column 0, Row 2</TextBlock>
        <TextBlock FontSize="15" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Column="1" Grid.Row="2" Margin="5">Column 1, Row 2</TextBlock>
        <TextBlock FontSize="15" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Column="2" Grid.Row="2" Margin="5">Column 2, Row 2</TextBlock>
      </Grid>
    </DockPanel>
</Window>
//File:Window.xaml.cs


using System;
using System.Windows;
using System.Windows.Controls;

namespace WpfApplication1
{
  public partial class Window1 : Window
  {
    private void setCol0(object sender, RoutedEventArgs e) 
    {
            Grid.SetColumn(rect1, 0);
            Console.WriteLine("Column " + Grid.GetColumn(rect1).ToString());

    }
        private void setCol1(object sender, RoutedEventArgs e)
        {
            Grid.SetColumn(rect1, 1);
            Console.WriteLine("Column " + Grid.GetColumn(rect1).ToString());
        }
        private void setCol2(object sender, RoutedEventArgs e)
        {
            Grid.SetColumn(rect1, 2);
            Console.WriteLine("Column " + Grid.GetColumn(rect1).ToString());
        }
    private void setRow0(object sender, RoutedEventArgs e)
    {
            Grid.SetRow(rect1, 0);
            Console.WriteLine("Row " + Grid.GetRow(rect1).ToString());
    }
        private void setRow1(object sender, RoutedEventArgs e)
        {
            Grid.SetRow(rect1, 1);
            Console.WriteLine("Row " + Grid.GetRow(rect1).ToString());
        }
        private void setRow2(object sender, RoutedEventArgs e)
        {
            Grid.SetRow(rect1, 2);
            Console.WriteLine("Row " + Grid.GetRow(rect1).ToString());
        }
        private void setColspan(object sender, RoutedEventArgs e)
    {
            Grid.SetColumnSpan(rect1, 3);
            Console.WriteLine("ColumnSpan " + Grid.GetColumnSpan(rect1).ToString());
    }
    private void setRowspan(object sender, RoutedEventArgs e)
    {
            Grid.SetRowSpan(rect1, 3);
            Console.WriteLine("RowSpan " + Grid.GetRowSpan(rect1).ToString());
    }
        private void clearAll(object sender, RoutedEventArgs e)
        {
            Grid.SetColumn(rect1, 0);
            Grid.SetRow(rect1, 0);
            Grid.SetColumnSpan(rect1, 1);
            Grid.SetRowSpan(rect1, 1);
        }
  }
}