在我的控件中,我有一個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是所需的高度。
我在這裏錯過了什麼嗎?因爲這看起來不是什麼大問題。
嘗試'InnerContent.ActualHeight' – ASh
問題是,您將託管StackPanel的盒子的高度設置在別處。嘗試閱讀內容高度很像狗抓自己的尾巴。一個嘗試可能會在Canvas或ScrollViewer中託管StackPanel,因爲它們不會限制其子級的大小。在擴展外部控制的時刻,您可以測量SP的ActualHeight,然後開始動畫。 –