【发布时间】:2026-02-08 01:45:02
【问题描述】:
我正在编写一个自定义面板,我想知道如何告诉我的孩子,当他们需要重新测量时,他们的父母也应该进行重新测量。
例如,其中一个孩子改变了它的宽度,父母也应该再次重新测量,导致他的父母也进行重新测量,然后他的父母的父母和他父母的父母等等......就像上升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);
}
【问题讨论】:
-
你不要那样做。它是由 WPF 自动完成的。试试吧。
-
它不会自动执行.. 如果我告诉面板您的尺寸为 200 x 200,然后我将孩子的宽度更改为 300,则面板不会更新.. 这是我的我在问这个问题
-
您需要提供更多信息,说明您要实现的目标以及原因并显示一些代码。如果我们只能猜测,* 的人将无法提供帮助。
-
这是我的帖子。有代码*.com/questions/14775226/…
-
如果信息相同,那么您不应该发布另一个问题。如果它不同并且需要另一个问题,那么请花时间在此处提供信息。另外,您是否尝试过针对其他问题给出的建议?
标签: wpf wpf-controls