我只是尝试统一网格,它是如何工作的。
代码:
<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>
我发现两个按钮彼此相邻放置,但它们之间存在一列。为什么会这样? (如在均匀网格中,每个单元格具有相似的大小,它们之间应该有一个单元格)
理解为什么会这样(通过回答),但仍然好奇知道附属物的意义是什么 - Grid.Row&amp; Grid.Column 如果他们什么都不做???
答案 0 :(得分:47)
UniformGrid包含两个属性:Rows和Columns,用于设置行数和列数。 控件按照声明的顺序添加到网格中。 所以它们之间不会有任何列。在您的示例中,您已声明Columns = 3,并且您只添加了两个控件。但是如果你添加另一个控件,它将放在最后。
<UniformGrid Name="uniformGrid1"
Rows="2"
Columns="3">
<Button Content="Rohit"
Margin="2" />
<Button Content="asit"
Margin="2" />
<Button Content="asit"
Margin="2" />
</UniformGrid>
答案 1 :(得分:15)
如MSDN article for a UniformGrid所示,附加属性没有Grid.Row
或Grid.Column
。
相反,Intellisense可能会建议它,因为你在文档树中有一个Grid
。如果它是附加属性,则更有可能被称为UniformGrid.Row
,因为这是附加属性的访问方式。
答案 2 :(得分:0)
UniformGrid
与Grid
一样,可能有多行和多列,但有一个重要区别:所有行和列的大小都相同 !
当您需要网格行为而无需为行和列指定不同的大小时,请使用此选项。
例如,您已经为3
定义了UniformGrid
列,但是您拥有4
元素,而第四个元素将移至下一行。
因此,基本上,UniformGrid
不需要将Grid.Row
和Grid.Column
的附加属性设置为Button
或任何其他嵌套元素。