Пиша персонализиран панел и бих искал да знам как да кажа на децата си, че когато трябва да премерят, техният родител също трябва да направи повторното измерване.
Като пример, едно от децата променя ширината си и родителят също трябва да преизмери отново, карайки своя родител също да направи повторното измерване и след това родителят на неговия родител и родителят на неговия родител и т.н.. Все едно да се качите нагоре по 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);
}