Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 限制WPF ListView中文本块的宽度_C#_Wpf_Xaml_Listview_Horizontal Scrolling - Fatal编程技术网

C# 限制WPF ListView中文本块的宽度

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

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

我不想硬把宽度设为常量

我尝试将ScrollViewer.HorizontalScrollBarVisibility属性设置为Disabled,并在TextBlock上设置TextWrapping=“Wrap”,但这并没有奏效。 当我调试应用程序时,Live Property Explorer显示,即使禁用了ScrollViewer.HorizontalScrollBarVisibility,它仍然可以水平滚动(IsScrollProvider.HorizontallyScrollable属性为true

知道如何正确限制文本块的大小吗


如果您不想硬编码文本块的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%值)。