2017-03-29 3 views
0

Ich habe einen ListView mit einem solchen GridDataTemplate definiotion:Listview Datatemplate Grid binden Bildhöhe auf andere Ansicht der Höhe

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 
    <TextBlock x:Name="Tb" Text="{x:Bind Address}" TextWrapping="Wrap"/> 
    <Image Source="{x:Bind SignalResource}" Height="{Binding ElementName=Tb, Path=ActualHeight}"/> 
</Grid> 

Ich möchte Image nehmen Sie die TextBlock's Höhe, aber meine Bindung funktioniert nicht (wie ich verstanden - denn wenn die Bindung gelöst ist, ist ActualHeight von View immer noch 0)

Die Frage ist, wie Image Höhe an TextBlock Höhe zu binden?

+0

Enthält diese Frage Ihr Problem lösen: http://stackoverflow.com/questions/2232675/wpf- Bindung an die Höhe einer Komponente an andere? –

+0

@EamonnMcEvoy, nein leider (wenn ich es richtig verstanden habe). Ich habe WPF-Tags versehentlich in Frage gestellt. Ich entwickle UWP-App, und SharedSizeGroup ist dort nicht verfügbar (immer noch nicht sicher) –

Antwort

1

Actual (Breite) funktioniert nicht wie eine normale Eigenschaft - MSDN information:

Hinweis Obwohl es ein ActualHeightProperty Trägerfeld hat, ist Actual nicht Eigentum Änderungsbenachrichtigungen erhöhen und es sollte als normale CLR-Eigenschaft und nicht als Abhängigkeitseigenschaft betrachtet werden.

In Ihrem Fall können Sie mit Sizechanged Ereignisse auf Ihrem TextBlock- und dann die Höhe des Bildes anpassen. Ich bin mir nicht sicher, aber vielleicht wird es möglich sein, sie über RelativePanel mit der richtigen Ausrichtung auch zu tun. Hier ist ein Versuch mit RelativePanel (wie ich versucht habe, gibt es eine Chance, es wird funktionieren):

<RelativePanel> 
    <TextBlock Name="MyTB" Text="Something" FontSize="24"/> 
    <Rectangle Fill="Green" Width="40" RelativePanel.RightOf="MyTB" RelativePanel.AlignTopWith="MyTB" RelativePanel.AlignBottomWith="MyTB"/> 
</RelativePanel> 
+0

Ich habe Ihre Antwort als Teil der seltsamen und komplizierten Lösung verwendet, und es funktionierte abschließend –

Verwandte Themen