32

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

代码 :

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

4

3 回答 3

53

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>
于 2011-06-01T08:17:53.843 回答
16

UniformGrid 的 MSDN 文章中所示,没有属性Grid.RowGrid.Column附加属性。

相反,Intellisense 可能会建议它,因为您Grid在文档树的上方有更远的位置。如果它是附加属性,则更有可能调用UniformGrid.Row它,因为这是访问附加属性的方式。

于 2013-08-12T13:41:23.977 回答
0

UniformGrid就像,Grid可能有多个行和列,但有一个重要区别:所有行和列都将具有相同的大小
当您需要网格行为而不需要为行和列指定不同的大小时使用它。

例如,您已为 定义3了列,UniformGrid但您有4比第四个元素移动到下一行的元素。

所以基本上UniformGrid你不需要设置Grid.RowGrid.Column附加属性到一个Button或任何其他嵌套元素。

于 2020-09-08T12:42:12.957 回答