Ich möchte Text in Spalte 3 Wrap und keine horizontale Bildlaufleiste haben. Warum funktioniert das nicht?ItemsControl/ListBox Elemente überschreiten verfügbare Breite
<ItemsControl x:Name="listMessages" ItemsSource="{Binding Messages}" Grid.IsSharedSizeScope="True">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column1"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column2"/>
<ColumnDefinition Width="*" SharedSizeGroup="Column3"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column4"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Text1" />
<TextBlock Grid.Column="1" Text="Text2" />
<TextBlock Grid.Column="2" Text="Very long text that should wrap to the next line, but it doesn't work" TextWrapping="Wrap"/>
<TextBlock Grid.Column="3" Text="Text4" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Elemente nehmen mehr Breite als ItemsControl zur Verfügung. Das gleiche Problem ist mit ListBox.
Ich habe versucht, ScrollViewer.HorizontalScrollbarVisibility=Disabled
sowohl auf ItemsControl und Grid hinzuzufügen, aber das hilft nicht.
Versuchen Sie, das SharedSizeGroup-Attribut aus dem Element zu entfernen. –
mm8
Oder machen Sie das, was Sie normalerweise tun, um Spalten in einem ItemsControl anzuzeigen: Verwenden Sie eine ListView mit einer GridView. – Clemens
Das Entfernen von SharedSizeGroup ändert nichts. Ich verwende ItemsControl, weil ich keine Auswahl benötige. – Arek