C# 限制WPF ListView中文本块的宽度
我有一个列表视图,在它的ItemTemplate中有一个文本块(在一个网格中),它通常有很长的文本行。问题是如果文本太长,它会增加ListViewItem的宽度,而不是包装文本。如何限制TextBlock的宽度,使其不超过ListView的宽度 我不想硬把宽度设为常量 我尝试将ScrollViewer.HorizontalScrollBarVisibility属性设置为Disabled,并在TextBlock上设置TextWrapping=“Wrap”,但这并没有奏效。 当我调试应用程序时,Live Property Explorer显示,即使禁用了ScrollViewer.HorizontalScrollBarVisibility,它仍然可以水平滚动(IsScrollProvider.HorizontallyScrollable属性为true) 知道如何正确限制文本块的大小吗C# 限制WPF ListView中文本块的宽度,c#,wpf,xaml,listview,horizontal-scrolling,C#,Wpf,Xaml,Listview,Horizontal Scrolling,我有一个列表视图,在它的ItemTemplate中有一个文本块(在一个网格中),它通常有很长的文本行。问题是如果文本太长,它会增加ListViewItem的宽度,而不是包装文本。如何限制TextBlock的宽度,使其不超过ListView的宽度 我不想硬把宽度设为常量 我尝试将ScrollViewer.HorizontalScrollBarVisibility属性设置为Disabled,并在TextBlock上设置TextWrapping=“Wrap”,但这并没有奏效。 当我调试应用程序时,Li
如果您不想硬编码文本块的MaxWidth,只需根据ListView宽度为其指定一个相对宽度。如果您不想硬编码文本块的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 x:Name="listView"
HorizontalAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Disabled" >
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=.}" TextWrapping="Wrap"></TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
希望它对你也有用 您是否尝试过
TextBlock
的MaxWidth
属性?是的,我可以通过这种方式限制宽度,但我不想将其硬编码为常量值(调整应用程序主窗口大小时,ListView可以更改其大小)或将其绑定到对象ListView的实际宽度。这两个都是脆弱的解决方案。您是否尝试过TextBlock
的MaxWidth
属性?是的,我可以通过这种方式限制宽度,但我不想将其硬编码为常量(当应用程序主窗口调整大小时,ListView可以更改其大小)或将其绑定到对象ListView的实际宽度。这两种都是脆弱的解决方案。感谢您的尝试。这个示例也适用于我,但由于某些原因,我的程序不适用。我来检查一下差异。谢谢你的尝试。这个示例也适用于我,但由于某些原因,我的程序不适用。我会检查差异。我希望有一种更优雅的方式,但这似乎是我要使用的解决方案(使用转换器将MaxWidth属性绑定到父ListView的ActualWidth属性的95%值)。我希望有一种更优雅的方式,但这似乎是我要使用的解决方案(使用转换器将MaxWidth属性绑定到父ListView的ActualWidth属性的95%值)。