为什么WPF Grid.Rows从零开始,而不是相对?

时间:2013-03-20 15:26:18

标签: wpf grid

如果我有一个包含五行的网格,Grid.Row值总是0,1,2,3和4.如果,在设计时,我想在第一行之后插入一行,我将其Grid.Row值设置为1,但我需要更新插入行下面四行的Grid.Row值。这很烦人且容易出错。

相反,如果Grid.Row值类似于相对(我不知道描述这个的最佳词),我会将Grid.Row值设置为10,20,30,40和50。如果我想在第一行之后插入一行,我会将其Grid.Row值设置为15.我不需要更改任何其他行。布局引擎会知道按行升序排列。是否有某些原因导致Grid.Row值不以这种方式运行?

HTML Z-Index值的工作原理如下

1 个答案:

答案 0 :(得分:5)

  

是否有某些原因导致Grid.Row值不以这种方式运行?

这将要求Grid在其布局期间确定每个可能的行(通过迭代其所有子行),然后放置项目。这会减慢布局通道的速度并使其复杂化。

通过使网格行显式化,可以避免这种情况,并且当Grid安排它的子节点时,它有助于布局的整体性能。

  

HTML Z-Index值的工作原理如下

FYI - WPF中的Canvas类也使用此方法进行Z索引。