了解统一网格控件

时间:2011-06-01 07:25:43

标签: wpf wpf-controls uniformgrid

我只是尝试统一网格,它是如何工作的。

代码:

<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 如果他们什么都不做???

3 个答案:

答案 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.RowGrid.Column

相反,Intellisense可能会建议它,因为你在文档树中有一个Grid。如果它是附加属性,则更有可能被称为UniformGrid.Row,因为这是附加属性的访问方式。

答案 2 :(得分:0)

UniformGridGrid一样,可能有多行和多列,但有一个重要区别:所有行和列的大小都相同
当您需要网格行为而无需为行和列指定不同的大小时,请使用此选项。

例如,您已经为3定义了UniformGrid列,但是您拥有4元素,而第四个元素将移至下一行。

因此,基本上,UniformGrid不需要将Grid.RowGrid.Column的附加属性设置为Button或任何其他嵌套元素。