2011-06-30 31 views
1

在我的應用程序中,我在主窗口中有一個區域,可以隨時包含幾個不同的控件之一。WPF:找到控制需要多少空間

這個控件是在運行時生成的,它們的內容因底層數據而異,所以我不知道它們會佔用多少空間。

我想知道的是:有沒有一種方法可以在運行時確定控件需要多少空間才能不被「切斷」或需要滾動?即:需要多少空間才能完全可見?

我嘗試了「DesiredSize」屬性,並將其還挺作品,但並非總是如此:如果控制已經被使用(它已經是一個大小),它返回它上次使用的大小,而不是正確的,即使我稱之爲「InvalidateMeasure()」。

任何想法??

回答

2

撥打電話Measure。給它無限的空間作爲計算的可用大小。然後檢查DesiredSize以獲取所需的寬度(和/或高度)。

+0

謝謝,這似乎是正確的做法,做了一些測試,它的工作原理! –

+0

這種情況下不需要安排。 DesiredSize通過測量通過計算,而通過計算RenderSize。 –

+0

@Marat:你說得對,我已經改變了答案。 – HCL