How to set Grid row and column positions programmatically
For attached properties you can either call SetValue on the object for which you want to assign the value:
tblock.SetValue(Grid.RowProperty, 4);
Or call the static Set method (not as an instance method like you tried) for the property on the owner type, in this case SetRow:
Grid.SetRow(tblock, 4);
Here is an example which might help someone:
Grid test = new Grid();test.ColumnDefinitions.Add(new ColumnDefinition());test.ColumnDefinitions.Add(new ColumnDefinition());test.RowDefinitions.Add(new RowDefinition());test.RowDefinitions.Add(new RowDefinition());test.RowDefinitions.Add(new RowDefinition());Label t1 = new Label();t1.Content = "Test1";Label t2 = new Label();t2.Content = "Test2";Label t3 = new Label();t3.Content = "Test3";Label t4 = new Label();t4.Content = "Test4";Label t5 = new Label();t5.Content = "Test5";Label t6 = new Label();t6.Content = "Test6";Grid.SetColumn(t1, 0);Grid.SetRow(t1, 0);test.Children.Add(t1);Grid.SetColumn(t2, 1);Grid.SetRow(t2, 0);test.Children.Add(t2);Grid.SetColumn(t3, 0);Grid.SetRow(t3, 1);test.Children.Add(t3);Grid.SetColumn(t4, 1);Grid.SetRow(t4, 1);test.Children.Add(t4);Grid.SetColumn(t5, 0);Grid.SetRow(t5, 2);test.Children.Add(t5);Grid.SetColumn(t6, 1);Grid.SetRow(t6, 2);test.Children.Add(t6);