2012-03-16 40 views
0

在Windows窗體,你有一個PREFERREDSIZE屬性,會告訴你控制想要多大的空間。WPF PreferredSize屬性?

哪裏是在WPF該屬性?

我有一個網格與一些內容(的未知大小),並希望建立一種增加從0高度的電網的,達到它的優選的(自動)高度的動畫。當然網格是無論是在0高度或在開始崩潰,因爲它不應該在瞬間,但順利「淡入」彈出。所以我不能爲動畫目標使用ActualHeight屬性,因爲它始終爲0.相反方向的動畫應該更容易,因爲我可以將ActualHeight(或者只是沒有明確的起始值)設置爲0.

+0

同時,我已經試過各種DesiredSize,UpdateLayout請,InvalidateMeasure,和的ActualHeight這樣的,但充其量也只能在單個時間,然後再次高度保持0。 MSDN和IntelliSense沒有幫助我。 – ygoe 2012-03-16 10:31:05

+0

也許這可以幫助你:http://msdn.microsoft.com/en-us/library/system.windows.uielement.updatelayout.aspx該文件說了一些關於'MeasureCore'和'ArrangeCore' – Silvermind 2012-03-16 10:35:00

+0

不,這些方法是不公開。 – ygoe 2012-03-16 12:00:19

回答

1

給定一個FrameworkElement(element ),我希望允許其完全展開,然後測量它的大小我不如下:

element.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); 
element.Arrange(new Rect(new Point(0, 0), element.DesiredSize)); 
element.UpdateLayout(); 
Size sizeElementWantsToBe = element.DesiredSize; 

買者:我發現這個問題,因爲我在與觸發佈局Telerik的RadGridViews的這種方法的問題與模板列。但我懷疑你會遇到這個問題。

希望這會有所幫助。