1

我遇到了一个案例,我有一个自定义面板(从面板继承)并且我将它用作 ListView 中的 ItemsPanel。

当我调整它所在的容器的大小时,如果我把它调整得更小,我的面板的 MeasureOverride 函数会被调用一次,但是如果我把它调整得更大(比如说从 100 到 300),它会为 100 到 300 之间的每个值调用 MeasureOverride 和 ArrangeOverride ,以 2 为增量(如 102、104 等)。

奇怪的是容器立即调整大小(它的大小立即变为 300)。

我从 MeasureOverride 返回什么似乎并不重要——它就是这样做的。

我希望我可以在一个非常小的应用程序中实现它并将其发布在这里,但我还不能像那样复制它。不过,我可以整天在我的应用程序中重现它。

有谁知道这可能是什么原因?

4

1 回答 1

0

我能够通过动态设置面板的 MinWidth 属性来解决此问题,使其随容器的大小而变化。这防止了对 MeasureOverride 的不必要调用。我仍然有点不确定为什么会这样。

于 2010-06-14T02:35:02.103 回答