【问题标题】:Why are WPF Grid.Rows zero-based, and not relative?为什么 WPF Grid.Rows 从零开始,而不是相对的?
【发布时间】:2013-03-09 19:07:00
【问题描述】:

如果我有一个包含五行的网格,则 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 值是这样工作的

【问题讨论】:

    标签: wpf grid


    【解决方案1】:

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

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

    通过使网格行显式化,可以避免这种情况,并且有助于在 Grid 排列其子级时提高布局传递的整体性能。

    HTML Z-Index 值是这样工作的

    仅供参考 - WPF 中的 Canvas 类也将这种方法用于 Z 索引。

    【讨论】:

    • 我很好奇,布局阶段什么时候发生? WPF程序何时编译?还是每次运行的时候加载?
    • @user2023861 无论何时需要 - 如果您调整窗口大小等,则需要重新安排。有关详细信息,我会在此处阅读有关 MeasureOverrideArrangeOverride 的信息:msdn.microsoft.com/en-us/library/…
    猜你喜欢
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    相关资源
    最近更新 更多