【问题标题】:WPF ListBox Scrolling DilemmaWPF ListBox 滚动困境
【发布时间】:2021-05-12 04:13:29
【问题描述】:

我遇到了 WPF 在 ListBox 中的滚动行为的一种困境:

  • 当我在 ListBox 中设置ScrollViewer.VerticalScrollBarVisibility="Auto" 时,滚动工作正常。但是单击最后一个半可见元素会将项目向上移动以使其进入视图,然后项目将与最顶部项目的顶部对齐,而不是最低项目的底部。这在双击时特别烦人,因为该项目会在光标下向上移动,第二次单击可能会点击下一个元素,从而打开错误的元素。
  • 或者,我可以将整个 ListBox 放入 ScrollViewer。这样,当单击最后一个可见项目时,这些项目很好地与该元素的底部对齐。但这会中断使用鼠标滚轮的滚动,并且 PageDown 会跳转到最后一项而不是向下一页。

有没有办法让 ListBox 滚动正常工作?

【问题讨论】:

    标签: c# wpf listbox scrollviewer


    【解决方案1】:

    第一点:

    您是否尝试设置ScrollViewer.CanContentScroll="False"

    【讨论】:

    • 非常感谢,已解决!
    • 困境的新复杂性:ScrollViewer.CanContentScroll="False" 的初始化性能非常糟糕 - 对于大约 300 个元素,它超过 5 秒而不是 0.5 秒。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多