12

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

2 回答 2

33

尝试强制 ListBoxItems 的宽度为 ListBox 的宽度:

<ListBox
     Name="lstTasks"
     BorderThickness="0"
     Padding="5"
     HorizontalContentAlignment="Stretch">

您也可以尝试禁用水平滚动:

<ListBox
     ScrollViewer.HorizontalScrollBarVisibility="Disabled"
     ...>
于 2009-07-20T02:26:55.333 回答
0

一起使用包装和修剪没有任何意义。您应该使用其中之一的 texttrimming 或 textwrapping。它修剪它不包裹。

对于 textwrapping,Matt 的答案对于修剪是正确的,您应该定义widthmaxwidth属性值。

对于 SL 开发人员来说,它完全相同。

于 2014-12-12T15:44:36.487 回答