【问题标题】:WPF GridViewColumn Width="auto" only works for items in the current scroll scopeWPF GridViewColumn Width="auto" 仅适用于当前滚动范围内的项目
【发布时间】:2011-06-10 13:51:41
【问题描述】:

我有一个包含许多项目的 ListView,我正在尝试将列宽设置为自动,以便它们自动扩展为列中最长字符串的宽度。起初,它似乎可以工作,但当我向下滚动列表时,我注意到一些较长的字符串被剪短了,因为该列没有足够的自动扩展。然后我想到将宽度设置为自动似乎是根据当时网格上可见的列值计算宽度。因此,当我向下滚动到包含特定列的较长字符串的行时,我可以双击列分隔符以使其进一步展开。这种行为似乎不对。

如何让列从一开始就扩展到最长字符串的长度?

【问题讨论】:

    标签: wpf listview expand


    【解决方案1】:

    原因是虚拟化阻止了某些项目的生成,然后在计算宽度时不考虑它们。

    所以你可以通过添加这个来关闭 ListView 的虚拟化 ->

    <ListView x:Name="lv" ScrollViewer.CanContentScroll="False">
    

    但请注意,如果您有很多项目,它可能会降低您的应用速度,因为它们都会在启动时生成。

    【讨论】:

    • 效果很好。我的收藏相当轻巧,所以这不是一个大的性能问题。即使是这样,也只是初始负载,所以一切都很好。谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-05-31
    • 2014-11-18
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 2018-01-04
    相关资源
    最近更新 更多