Пункт WPF ListBox элемент не переносом строк
мой ListBox
имеет, среди прочего, поле описания в нем, которое может быть довольно длинным. Вместо горизонтальной полосы прокрутки я хочу обернуть ее словом.
Он работает, если я установил MaxWidth
но поскольку ListBox
изменяет размер я не хочу жестко кодировать значение.
какой лучший способ сделать это?
EDIT: описание находится в TextBlock
.
упрощенный XAML (удалены ненужные вещи, по-прежнему показывает проблему:
<ListBox BorderThickness="0" Padding="5" Name="lstTasks">
<ListBox.ItemsSource>
<Binding Source="{StaticResource dataTasks}"/>
</ListBox.ItemsSource>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding Path=RequestDescription}" TextTrimming="WordEllipsis" TextWrapping="Wrap" Height="60" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
2 ответов
попробуйте заставить ширину ListBoxItems быть шириной ListBox:
<ListBox
Name="lstTasks"
BorderThickness="0"
Padding="5"
HorizontalContentAlignment="Stretch">
Также вы можете попробовать отключить горизонтальный скроллинг:
<ListBox
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
...>
нет смысла использовать обертывание и обрезку вместе. Вы должны использовать один из них texttrimming или textwrapping. Он подрезает, не заворачивает.
для textwrapping ответ Мэтта является правильным для обрезки вы должны определить ширина или maxwidth значение свойства.
его точно так же для разработчиков SL.