2011-01-16 9 views
1

私は、ゲームのWPFのMeasure and Arrangeレイアウトシステムに大きく影響を受けたGUIシステムを実装しました。 DockPanelsとStackPanelsではうまく動作しますが、最近WrapPanelsを使用する必要がありました。私は、現在の状態では、私のGUIシステムはラッピングをサポートできないことを発見しました。なぜなら、先祖に基づいて最大の利用可能なサイズを知る必要があり、現在その情報なしで測定が行われているからです。WPFのメジャーサイズの制約はどのように機能しますか?

私はWPFのドキュメントをチェックし、そのMeasureメソッドがサイズ制約をパラメータとして取ります:Size Measure(Size availableSize)を見つけました。これは私を困惑させる。私の理解から、WPFは最初に葉から根まで測定し、次に根から葉までの測定を行います。しかし、この場合、測定フェーズでは祖先から利用可能なサイズが必要です。これは祖先のサイズが子孫のサイズに依存するため、私には矛盾しているようです。

WPFはどのようにして測定パスにavailableSizeの値を提供しますか?

答えて

2

私はあなたの理解が間違っていると思います。ルートから葉まで、ルートから葉までです。実際には、それ自身の対策パスの間に子どもにMeasure()を呼び出すのは、親のコントロールの責任です。したがって、親は子供のためにどれくらいのスペースが利用可能であるかを知ることができ、測定するときにそれを渡すことができます。

+0

これは意味があります:) – Trillian

関連する問題