24

How can I append an Image object into a Grid and set it's Row and Column?

The grid is 3x3.

Main file:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="440" Width="400" ResizeMode="NoResize">
    <Window.Background>
        <ImageBrush ImageSource="C:\Users\GuyD\AppData\Local\Temporary Projects\WpfApplication1\AppResources\Background.png"></ImageBrush>
    </Window.Background>
    <Grid ShowGridLines="True" x:Name="myGrid">
        <Grid.RowDefinitions>
            <RowDefinition Height="42" />
            <RowDefinition Height="30*" />
            <RowDefinition Height="30*" />
            <RowDefinition Height="32*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="31*" />
            <ColumnDefinition Width="26*" />
            <ColumnDefinition Width="32*" />
        </Grid.ColumnDefinitions>
    </Grid>
</Window>

Code behind file:

public MainWindow()
{
     InitializeComponent();
     for (int i = 0; i < 3; i++)
     {
          for (int j = 0; j < 3; j++)
          {
               Image Box = new Image();
               this.myGrid.Children.Add(Box);
          }
     }
}
H.B.
  • 166,899
  • 29
  • 327
  • 400
Novak
  • 2,760
  • 9
  • 42
  • 63

4 Answers4

64

The Grid setter methods are static.
To place them in row 1 column 1:

Image Box = new Image();
myGrid.Children.Add(Box);
Grid.SetRow(Box, 1);
Grid.SetColumn(Box, 1);
Gerard Sexton
  • 3,114
  • 27
  • 36
6

You can use following to set for any UIElement

Grid.SetRow(Box, i);
Grid.SetColumn(Box, j);
Rohit Agrawal
  • 335
  • 1
  • 2
  • 9
1
for (int i = 0; i < 4; i++)
      {
        for (int j = 0; j < 3; j++)
        {
           Image Box = new Image();
           this.myGrid.Children.Add(Box);
           Grid.SetRow(Box, i);
           Grid.SetColumn(Box, j);
        }
     }

And yes the Grid is of 4X3 not of 3X3 dimensions. I hope this will help.

yo chauhan
  • 12,079
  • 4
  • 39
  • 58
0

Try this:

public MainWindow() {
 InitializeComponent();
 for (int i = 0; i < 3; i++)
 {
      for (int j = 0; j < 3; j++)
      {
           Image Box = new Image();
           Grid.SetRow(Box, i);
           Grid.SetColumn(Box, j);
      }
 }
}
H.B.
  • 166,899
  • 29
  • 327
  • 400
klm_
  • 1,199
  • 1
  • 10
  • 26