Ich habe eine ListBox, die ein Bild und einen Text darüber zeigt. Ich habe das DataTemplate an eine benutzerdefinierte MyImage-Klasse gebunden, die über eine Zeichenfolge Str
und ein Image Image
verfügt. Das nächste Bild würde rechts von dem ersten erscheinen, da das umgebende StackPanel horizontal ist.So binden Sie die Höhe an die Höhe des übergeordneten Elements abzüglich der Höhe eines anderen Elements
Ich habe Probleme, die Höhe des Bildes auf einen Wert, wo es die gesamte ListBox Höhe minus die Höhe und den Rand des Textes füllen würde. Im folgenden Code habe ich es an die ActualHeight der ListBox listboxMyImages
gebunden. Ich möchte jetzt die Höhe des TextBlocks von diesem Wert subtrahieren können. Was ist der beste Weg, das zu tun?
<ListBox x:Name="listboxMyImages" Margin="10,10,10,10">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type local:MyImage}">
<StackPanel>
<TextBlock x:Name="lblMyImage" Margin="3" Text="{Binding Str}" />
<Image Margin="3" Source="{Binding Image}" Height="{Binding ElementName=listboxMyImages, Path=ActualHeight }"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
, die tatsächlich das Bild auf seine ursprüngliche Größe streckt und macht mich in der List-Box nach unten scrollen. – tzippy
Es scheint, dass Itemspanel StackPanel nicht begrenzte Höhe für Elemente erlaubt. Ich muss über Verbesserungen nachdenken – ASh
Okay, danke! Lass es mich wissen, wenn du an etwas denkst. – tzippy