2010-06-14 53 views
1

我遇到了一個案例,我有一個自定義面板(從Panel繼承),我將它用作ListView中的ItemsPanel。當我調整它所在的容器的大小時,如果我調整它的大小,我的面板的MeasureOverride函數被調用一次,但如果我調整它的大小(比如從100到300),它會爲每個值調用MeasureOverride和ArrangeOverride在100和300之間,以2爲增量(如102,104等)。WPF佈局以2爲增量重複調用MeasureOverride?

奇怪的是容器馬上調整大小(它的大小立即變爲300)。

我從MeasureOverride返回的內容似乎並不重要 - 它只是這樣做。

我希望我可以在一個非常小的應用程序中實現它並將其發佈到此處,但我還沒有能夠像那樣重現它。儘管如此,我可以在我的應用程序中全天重現它。

有誰知道這可能是什麼原因造成的?

+0

我會假設ListView在調整大小時正在做一些奇怪的事情,並且正在尋找它的孩子的理想大小,或者類似的東西。堆棧跟蹤的樣子是什麼? – 2010-11-19 00:49:55

回答

0

我能夠通過動態設置我的面板的MinWidth屬性來解決此問題,使其隨容器大小發生變化。這防止了對MeasureOverride的不必要的調用。儘管如此,我仍然有點不確定。