Чтобы реализовать собственную панель, вам нужно реализовать MeasureOverride
и ArrangeOverride
. Во время компоновки вещи выясняются, поэтому окончательные значения еще не доступны. Для начала используйте аргумент Size
, переданный вам в MeasureOverride
, который является доступным размером. Вы можете использовать больше или меньше этой суммы. Это зависит от поведения макета вашей панели. Независимо от того, что вы делаете, вы должны звонить Measure
всем своим детям, и вы, конечно, можете использовать эту информацию в своих расчетах.
Если у вас есть определенное поведение панели, которое вы хотите реализовать, но не хотите обрабатывать большое количество особых случаев, тогда вы можете предоставить своим детям все пространство, которое они запрашивают, в направлении, которое вы не складываете, и позволить своим детям при необходимости раскладывайте их с помощью панелей.