/ / ItemsControl / ListBox artículos exceden el ancho disponible - wpf, xaml, itemscontrol, listboxitem

Items ItemsControl / ListBox exceden el ancho disponible - wpf, xaml, itemscontrol, listboxitem

Quiero que el texto en la columna 3 se ajuste y no tengo barra de desplazamiento horizontal. ¿Por qué no funciona esto?

<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>

Los artículos toman más ancho del que está disponible para ItemsControl. El mismo problema es con ListBox.

Traté de añadir ScrollViewer.HorizontalScrollbarVisibility=Disabled tanto en ItemsControl como en Grid, pero esto no ayuda.

Respuestas

1 para la respuesta № 1

El texto se envolverá si no configura el SharedSizeGroup propiedad:

<ColumnDefinition Width="*"/>

El ajuste de texto y los grupos de tamaño compartido no van bien juntos. Es posible que desee especificar un MaxWidth Para el ColumnDefinition o el TextBlock.