Je veux du texte dans la colonne 3 wrap et ne pas avoir de barre de défilement horizontale. Pourquoi ça ne marche pas?ItemsControl/ListBox éléments dépassent la largeur disponible
<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>
Les éléments prennent plus de largeur que ce qui est disponible pour ItemsControl. Le même problème est avec ListBox.
J'ai essayé d'ajouter ScrollViewer.HorizontalScrollbarVisibility=Disabled
à la fois sur ItemsControl et Grid, mais cela n'aide pas.
Essayez de supprimer l'attribut SharedSizeGroup de l'élément . –
mm8
Ou faites ce que vous faites habituellement pour montrer des colonnes dans un ItemsControl: utilisez un ListView avec un GridView. – Clemens
La suppression de SharedSizeGroup ne change rien. J'utilise ItemsControl parce que je n'ai pas besoin de sélection. – Arek