我有一个包含许多项目的 ListView,我试图将列宽设置为自动,以便它们自动扩展到列中最长字符串的宽度。起初,它似乎有效,但当我向下滚动列表时,我注意到一些较长的字符串被剪短了,因为该列没有足够的自动扩展。然后我想到将宽度设置为 auto 似乎是根据当时网格上可见的列值计算宽度。因此,当我向下滚动到包含特定列的更长字符串的行时,我可以双击列分隔符以使其进一步展开。这种行为似乎不对。
如何让列从一开始就扩展到最长字符串的长度?
最佳答案
原因是虚拟化阻止了某些项目的生成,然后在计算宽度时不考虑它们。
因此,您可以通过将其添加到 ListView 来关闭虚拟化 ->
<ListView x:Name="lv" ScrollViewer.CanContentScroll="False">
但要小心,如果你有很多项目,它会减慢你的应用程序,因为它们都会在启动时生成。
关于WPF GridViewColumn Width ="auto"仅适用于当前滚动范围内的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6307289/