3

5行のグリッドがある場合、Grid.Rowの値は常に0、1、2、3、および4です。設計時に最初の行の後に行を挿入する場合は、次のように設定します。そのGrid.Row値を1に変更しますが、挿入された行の下の4行のGrid.Row値を更新する必要があります。これは煩わしく、エラーが発生しやすくなります。

代わりに、Grid.Rowの値が相対的なものである場合(これを説明するのに最適な単語がわかりません)、Grid.Rowの値を10、20、30、40、および50に設定します。この場合、最初の行の後に行を挿入したかったので、そのGrid.Row値を15に設定しました。他の行を変更する必要はありません。レイアウトエンジンは、行を昇順で配置することを認識します。Grid.Row値がこのように機能しない理由はありますか?

HTMLZ-Index値は次のように機能します

4

1 に答える 1

7

Grid.Row値がこのように機能しない理由はありますか?

これには、グリッドがレイアウト中にすべての可能な行を決定し(すべての子を反復処理することにより)、アイテムを配置する必要がありますこれにより、速度が低下し、レイアウトパスが複雑になります。

グリッド行を明示的にすることで、これが回避され、グリッドが子を配置するときにレイアウトパスの全体的なパフォーマンスが向上します。

HTMLZ-Index値は次のように機能します

参考までに-WPFのCanvasクラスも、このアプローチをZインデックスに使用します。

于 2013-03-20T15:27:58.713 に答える