.net - WPF 列表框项目不自动换行

标签 .net wpf listbox word-wrap

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

最佳答案

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

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

您也可以尝试禁用水平滚动:
<ListBox
     ScrollViewer.HorizontalScrollBarVisibility="Disabled"
     ...>

关于.net - WPF 列表框项目不自动换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1151471/

相关文章:

c# - 使用 Telerik 导出到 Excel (XLSX) 时如何解释集合?

c# - 如何在单独的线程上运行 Converter 内的代码,以便 UI 不卡住?

c# - 从 UIElement 生成 BitmapSource

c# - ListBox SelectedValueChanged/SelectedIndexChanged 在数据源更改时不触发

c# - 将列表框中的值添加到数据库

c# - 从一个委托(delegate)转换为另一个委托(delegate)。伪 Actor

.net - 如何将TCPClient和NetworkStream移植到Silverlight?

.net - 与 List(of AType(of T)) 的协方差,其中 T 是接口(interface)

c# - WPF 相当于 TextRenderer

WPF Stretch ListBox Height 100% of Grid.Row?