2017-03-01 2 views
1

In meiner Kontrolle habe ich einen ContentPresenter, dessen Child ein StackPanel ist. In diesem StackPanel befinden sich einige Elemente. Die Nummer ist nicht definiert, da der Benutzer des Controls sie definiert.WPF/Xaml - Erhalte die Höhe eines dynamischen Elements

Gibt es eine Möglichkeit, an die Höhe der Elemente im StackPanel zu binden? In der Live-Struktur von Visual Studio gibt es eine Eigenschaft RenderSize, die mir die Höhe gibt, die ich brauche, aber die Bindung an diese Eigenschaft tut nichts.

Ich weiß nicht, ob Code Ihnen hilft, aber hier ist mein ContentPresenter. InnerContent ist eine benutzerdefinierte Eigenschaft, die ein UIElement als Setter (das StackPanel) verwendet.

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

ich binden an InnerContent.RenderSize.Height aber nicht alles tun.

EDIT: Ich kann nicht auf die Actual Property binden, weil die ContentPresenters Höhe animiert wird. Es ist eine Art von Dropdown. Die Höhe wird zwischen 0 und der Höhe des StackPanels umgeschaltet. Und an diesem Punkt ist die ActualHeight des StackPanels 0, aber die RenderSize ist die gewünschte Höhe.

Fehle ich hier etwas? Weil das nicht wie ein großes Problem aussieht.

+1

versuchen Sie 'InnerContent.ActualHeight' – ASh

+0

Das Problem besteht darin, dass Sie das StackPanel in einer Box hosten, deren Höhe woanders festgelegt ist. Versuchen Sie, die Inhaltshöhe zu lesen ist sehr ähnlich wie der Hund seinen eigenen Schwanz fängt. Ein Versuch könnte darin bestehen, das StackPanel in einem Canvas oder einem ScrollViewer zu hosten, da sie die Größe ihrer untergeordneten Elemente nicht einschränken. Wenn Sie das äußere Steuerelement erweitern, können Sie die ActualHeight des SP messen und dann mit der Animation beginnen. –

Antwort

0

Okay Jungs. Das war mein Fehler. Die ActualHeight-Eigenschaft funktioniert einwandfrei, selbst wenn die ContentPresenter-Height-Eigenschaft 0 ist, wird die ActualHeight des StackPanels richtig eingestellt.

Danke!

Verwandte Themen