2010-07-05 43 views
0

我有一個Expander控件,我需要計算它的邊界而沒有不可見的元素和邊距。它通常可以通過VisualTreeHelper.GetDescendantsBounds完成。但是,似乎由VisualTreeHelper計算的矩形不依賴於擴展器狀態。例如:如何計算擴展器的邊界框?

http://i.piccy.info/i5/58/39/273958/collapsed.jpg

(我不能發佈圖像對不起。)

了相同的結果作爲用於展開狀態(圖像上的淺綠色矩形)。有人知道如何解決這個問題嗎?

回答

0

Expander控件將其內容的可見性設置爲Collapsed,這意味着它在佈局過程中不會被考慮,並且不會包含在GetDescendantBounds中。但是,擴展器可以被佈局引擎強制爲具有更大的尺寸,並且擴展器自己的尺寸包含在GetDescendantBounds中。

嘗試在擴展器上設置VerticalAlignment="Top"。默認值爲Stretch,如果父級擁有更多可用空間,這將允許它的大小增加。還要確保你沒有明確地設置Height屬性。

+0

感謝您的回答!但似乎擴展器邊界矩形不依賴VerticalAlignment(我試圖將此屬性更改爲Top)。我會嘗試製作示例應用程序並將其附加到問題中。 – sedovav 2010-07-06 06:06:54