【问题标题】:Change number of lines mouse wheel scrolls in WPF ListBox更改 WPF ListBox 中鼠标滚轮滚动的行数
【发布时间】:2011-11-09 23:44:55
【问题描述】:

在 WPF 列表框中,旋转鼠标滚轮将按照 Windows 控制面板中鼠标滚轮选项中指定的行数滚动列表。

如何更改此设置,例如我想使用鼠标滚轮随时滚动 WPF ListBox 一行。

谢谢。

【问题讨论】:

    标签: wpf scroll listbox mouse mousewheel


    【解决方案1】:

    正如 ygoe 在评论中所说,您正在寻找的是:

    ScrollViewer.CanContentScroll="False"
    

    在我的测试中,它会一次滚动列表一行。

    当然,您应该考虑它会覆盖全局窗口设置,如 Erno 所述

    【讨论】:

      【解决方案2】:

      正如您所说,这是一个控制面板设置,您正试图覆盖它。这会让用户感到困惑。我建议你不要这样做。

      但是您可以尝试覆盖各种事件并使用scrollViewer.ScrollToVerticalOffset(...); 定位垂直滚动

      【讨论】:

      • 是的,但是 ScrollToVerticalOffset 不精确而且速度很慢。
      • 我的 ListBox 有很多带有图片的项目。一次滚动 3 行可能会跳过小窗口中的行。我认为在这里将数字减少到 2 甚至 1 是合理的,最初考虑到当前用户的偏好。
      • PS:我刚刚为我的场景找到了一个更好的解决方案:将ScrollViewer.CanContentScroll="False" 设置为ListBox。这让用户可以在更好的项目之间滚动。
      • @LonelyPixel - 这是一个很好的补充,但它仍会按配置中设置的行数滚动,但不会在像素级别滚动
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      相关资源
      最近更新 更多