c# - 限制 WPF ListView 中 TextBlock 的宽度

标签 c# wpf xaml listview horizontal-scrolling

我有一个ListView,在它的ItemTemplate 中有一个TextBlock(在网格内),它通常包含长行文本。问题是,如果文本太长,它会增加 ListViewItem 的宽度而不是换行文本。如何限制TextBlock的宽度,使其不超过ListView的宽度?

我不想将宽度硬编码为恒定值。

我尝试将 ScrollViewer.Horizo​​ntalScrollBarVisibility 属性设置为 Disabled 并在 TextBlock 上设置 TextWrapping="Wrap",但没有成功做这个伎俩。 当我调试应用程序时,实时属性资源管理器显示,即使 ScrollViewer.Horizo​​ntalScrollBarVisibility 被禁用,它仍然可以水平滚动(IScrollProvider.Horizo​​ntallyScrollable 属性是真实)。

知道如何正确限制文本 block 大小吗?

最佳答案

稍微玩了一下,这给了我预期的结果:

<ListView x:Name="listView" 
                  HorizontalAlignment="Stretch" 
                  ScrollViewer.HorizontalScrollBarVisibility="Disabled" >
            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Path=.}" TextWrapping="Wrap"></TextBlock>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

希望它也适合您!

关于c# - 限制 WPF ListView 中 TextBlock 的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40750500/

相关文章:

c# - 如何正确阻止异步代码?

c# - DatePicker 数据绑定(bind)将默认值设置为 1/1/0001 WPF c#

c# - 在 DependencyObject 上使用 DependencyProperty.AddOwner 方法而不是简单的 POCO 属性 getter/setter 的原因是什么?

WPF:没有文本时将 TextBlock 高度设置为 0

c# - 如何加粗标签的一部分?

c# - Shift+Tab 在 TreeView 控件中不起作用

c# - 我的 SQLParameter 没有正确传递 NULL

基于比较的 WPF 绑定(bind)

c# - 寻找一种优雅的方式来绕过 "Cannot await in the body of a finally clause"

c# - 如何忽略 Parent 的事件处理程序以便在 WPF 中使用 Child 事件处理程序(对于 DragEvent)