Я пишу пользовательскую панель, и я хотел бы знать, как сказать своим детям, что, когда им нужно перемерить, их родитель также должен сделать переизмерение.
Например, один из дочерних элементов изменяет свою ширину, и родитель также должен снова измерить, что приводит к тому, что его родитель также выполняет повторное измерение, а затем родитель его родителя и родитель его родителя и так далее. Это похоже на подъем VisualTree
. Как я могу это сделать?
Вот код меры панели.. но как сообщить родителю, чтобы он также перемерил
protected override Size MeasureOverride(Size availableSize)
{
double x;
double y;
var children = this.InternalChildren;
for (int i = 0; i < children.Count; i++)
{
UIElement child = children[i];
child.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity);
y += child.DesiredSize.Height;
x = Math.Max(x, child.DesiredSize.Width);
}
return new Size(x, y);
}