2017-03-01 51 views
1

在我的控件中,我有一個ContentPresenter,其Child是一個StackPanel。在這個StackPanel裏面有一些元素。該數字未定義,因爲控制的用戶定義了它。WPF/Xaml - 獲取動態元素的高度

有沒有辦法綁定到StackPanel中的元素的高度?在Visual Studio的Live Tree中有一個屬性RenderSize,它給了我所需要的高度,但綁定到這個屬性什麼也不做。

我不知道代碼是否可以幫助您,但這裏是我的ContentPresenter。 InnerContent是一個自定義Property,它將UIElement作爲Setter(StackPanel)。

<ContentPresenter 
    x:Name="MyContentPresenter" 
    Content="{TemplateBinding InnerContent}" /> 

我綁定到InnerContent.RenderSize.Height但是這不起任何作用。

編輯: 我無法綁定到ActualHeight屬性,因爲ContentPresenters高度是動畫效果。它的某種下拉菜單。高度在0和StackPanel的高度之間切換。在這個點上,StackPanel的ActualHeight是0,但RenderSize是所需的高度。

我在這裏錯過了什麼嗎?因爲這看起來不是什麼大問題。

+1

嘗試'InnerContent.ActualHeight' – ASh

+0

問題是,您將託管StackPanel的盒子的高度設置在別處。嘗試閱讀內容高度很像狗抓自己的尾巴。一個嘗試可能會在Canvas或ScrollViewer中託管StackPanel,因爲它們不會限制其子級的大小。在擴展外部控制的時刻,您可以測量SP的ActualHeight,然後開始動畫。 –

回答

0

好吧,夥計們。這是我的不好。即使當ContentPresenters Height屬性爲0時,ActualHeight屬性也能正常工作,StackPanel的ActualHeight設置正確。

謝謝!