我的ListBox
除了其他内容之外还有一个很长的描述字段。我没有水平滚动条,而是想用自动换行。
如果我设置了MaxWidth
,但由于ListBox
更改了大小,我不想对该值进行硬编码。
最好的方法是什么?
编辑:说明位于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>
答案 0 :(得分:31)
尝试将ListBoxItems的宽度强制为ListBox的宽度:
<ListBox
Name="lstTasks"
BorderThickness="0"
Padding="5"
HorizontalContentAlignment="Stretch">
您也可以尝试禁用水平滚动:
<ListBox
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
...>
答案 1 :(得分:0)
使用包装和修剪没有任何意义。您应该使用其中一个texttrimming或textwrapping。它修剪它没有包裹。
对于文字处理,Matt的答案对于修剪是正确的,您应该定义宽度或 maxwidth 属性值。
SL开发人员完全相同。