限制 WPF ListView 中 TextBlock 的宽度
Limiting the width of the TextBlock in a WPF ListView
我有一个 ListView,在它的 ItemTemplate 中有一个 TextBlock(在 Grid 中),它通常有很长的文本行。问题是如果文本太长,它会增加 ListViewItem 的宽度而不是环绕文本。如何限制 TextBlock 的宽度,使其不超过 ListView 的宽度?
我不想将宽度硬编码为一个常数值。
我尝试将 ScrollViewer.HorizontalScrollBarVisibility 属性 设置为 Disabled 并设置 TextWrapping= "Wrap" 在 TextBlock 上,但这并没有达到目的。
当我调试应用程序时,Live 属性 Explorer 显示即使 ScrollViewer.HorizontalScrollBarVisibility 被禁用,它仍然可以水平滚动( IScrollProvider.HorizontallyScrollable 属性 是 true).
知道如何正确限制文本块大小吗?
如果您不想对文本块的 MaxWidth 进行硬编码,只需根据 ListView 宽度为其指定一个相对宽度即可。
玩了一下,得到了预期的结果:
<ListView x:Name="listView"
HorizontalAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Disabled" >
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=.}" TextWrapping="Wrap"></TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
希望它也适合你!
我有一个 ListView,在它的 ItemTemplate 中有一个 TextBlock(在 Grid 中),它通常有很长的文本行。问题是如果文本太长,它会增加 ListViewItem 的宽度而不是环绕文本。如何限制 TextBlock 的宽度,使其不超过 ListView 的宽度?
我不想将宽度硬编码为一个常数值。
我尝试将 ScrollViewer.HorizontalScrollBarVisibility 属性 设置为 Disabled 并设置 TextWrapping= "Wrap" 在 TextBlock 上,但这并没有达到目的。 当我调试应用程序时,Live 属性 Explorer 显示即使 ScrollViewer.HorizontalScrollBarVisibility 被禁用,它仍然可以水平滚动( IScrollProvider.HorizontallyScrollable 属性 是 true).
知道如何正确限制文本块大小吗?
如果您不想对文本块的 MaxWidth 进行硬编码,只需根据 ListView 宽度为其指定一个相对宽度即可。
玩了一下,得到了预期的结果:
<ListView x:Name="listView"
HorizontalAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Disabled" >
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=.}" TextWrapping="Wrap"></TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
希望它也适合你!