私のコントロールでは、子がStackPanelであるContentPresenterがあります。このStackPanelの内部にはいくつかの要素があります。コントロールのユーザーが定義するため、番号は未定義です。WPF/Xaml - 動的要素の高さを取得
StackPanel内部の要素の高さにバインドする方法はありますか? Visual Studioのライブツリーには必要な高さを与えるProperty RenderSizeがありますが、このプロパティへのバインディングは何もしません。
コードが役立つかどうかわかりませんが、私のContentPresenterはここにあります。 InnerContentは、Setter(StackPanel)としてUIElementをとるカスタムプロパティです。
<ContentPresenter
x:Name="MyContentPresenter"
Content="{TemplateBinding InnerContent}" />
私はInnerContent.RenderSize.Height
にバインドしますが、これは何もしません。
EDIT: ContentPresentersの高さがアニメーション化されているため、ActualHeightプロパティにバインドできません。そのいくつかの種類のドロップダウン。高さは0とStackPanelの高さの間で切り替えられます。そして、この時点でStackPanelのActualHeightは0ですが、RenderSizeは希望の高さです。
ここに何か不足していますか?これは大きな問題のようには見えないからです。
try 'InnerContent.ActualHeight' – ASh
問題は、高さが他の場所に設定されているボックスにStackPanelをホストしていることです。内容の高さを読んでみることは、犬が自分の尻尾をつかむようなものです。 CanvasやScrollViewerでStackPanelをホストしようとする試みは、子のサイズを制限しないためです。外側コントロールを展開する瞬間に、SPのActualHeightを測定してアニメーションを開始することができます。 –