Understanding Uniform Grid control
Asked Answered
P

3

33

I was just trying uniform grid, how it works.

Code :

<UniformGrid Name="uniformGrid1" Rows="2" Columns="3">
        <Button Content="Rohit" Grid.Row="0" Grid.Column="0" />
        <Button Content="asit" Grid.Row="0" Grid.Column="2" />
</UniformGrid>

I found that both buttons are placed adjacent to each other, however there exist a column between them. Why is it so ? (as in uniform grid, each cell has similar size there should be one cell between them)

Understood why it is so (by answer) but still curious to konw what's the significance of Attached property - Grid.Row & Grid.Column if they do nothing ???

Polliwog answered 1/6, 2011 at 7:25 Comment(0)
A
57

UniformGrid contains two properties, Rows and Columns, for setting the number of rows and columns. Controls are added to the grid in the order that they are declared. So there will not be any column in between them. In your example you have declared Columns=3 and you have added only two controls. But if you add another control it will place in the end.

  <UniformGrid Name="uniformGrid1"
                 Rows="2"
                 Columns="3">
        <Button Content="Rohit"
                 Margin="2" />
        <Button Content="asit"
                 Margin="2" />
        <Button Content="asit"
                Margin="2" />
    </UniformGrid>
Asbury answered 1/6, 2011 at 8:17 Comment(4)
Sounds good. But what's the significance of Grid.Row and Grid.Column attached property in this case??? In general they represent the placement of Control in Grid ....Polliwog
Updated the answer . it's my mistake no need to provide the Grid.Row and Grid.Column attached property. i just copied your code and didn't notice.Asbury
An additional point - controls are added by row in the order they are declared. That is, if you have 3 columns and add 4 controls, you'll have one row of 3 and a second row of 1.Domela
Also, it's usually desirable to specify only Rows or Columns but not both (the unspecified one is auto-calculated based on the number of children). If you specify both, the UniformGrid will size to exactly the specified size, but additional controls will appear in additional rows outside the bounds of the UniformGrid (fewer controls will leave blank rows inside the bounds of the UniformGrid).Domela
F
16

As shown in the MSDN article for a UniformGrid, there is no Grid.Row or Grid.Column attached property.

Instead, Intellisense may be suggesting it because you have a Grid further up the document tree. If it were an attached property, it would be far more likely to be called UniformGrid.Row as that is how attached properties are accessed.

Flexile answered 12/8, 2013 at 13:41 Comment(0)
A
1

The UniformGrid is just like the Grid, with the possibility of multiple rows and columns, but with one important difference: All rows and columns will have the same size!
Use this when you need Grid behavior without the need to specify different sizes for the rows and columns.

For example, you have defined 3 Columns for the UniformGrid but you have 4 elements than the fourth one will be moved to the next line.

So basically with UniformGrid you don't need to set Grid.Row and Grid.Column attached properties to a Button or any other nested elements.

Attwood answered 8/9, 2020 at 12:42 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.