限制WPF ListView中TextBlock的宽度

时间:2016-11-22 19:55:09

标签: c# wpf xaml listview horizontal-scrolling

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

我不想将宽度强制为恒定值。

我尝试将 ScrollViewer.Horizo​​ntalScrollBarVisibility 属性设置为已禁用并在TextBlock上设置 TextWrapping =&#34; Wrap&#34; ,但那并没有成功。 当我调试应用程序时, Live Property Explorer 显示即使 ScrollViewer.Horizo​​ntalScrollBarVisibility 被禁用,它仍然可以水平滚动( IScrollProvider.Horizo​​ntallyScrollable < / strong> property is true )。

知道如何正确限制文本块尺寸吗?

2 个答案:

答案 0 :(得分:3)

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

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

希望它也适合你!

答案 1 :(得分:1)

如果您不想为文本块硬编码MaxWidth,只需根据ListView宽度给它一个相对宽度。