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

use*_*861 2 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值的工作方式如下

Ree*_*sey 5

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

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

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

HTML Z-Index值的工作方式如下

仅供参考 - Canvas在WPF中,类也使用此方法进行Z索引.

  • @ user2023861每当需要时 - 如果你调整窗口等,那么事情需要重新安排.有关详细信息,我在这里阅读了有关`MeasureOverride`和`ArrangeOverride`的内容:http://msdn.microsoft.com/en-us/library/ms745058.aspx#LayoutSystem_Measure_Arrange (3认同)