【问题标题】:Does WPF have mouse wheel scrolling up and down eventWPF是否有鼠标滚轮上下滚动事件
【发布时间】:2014-08-04 13:45:08
【问题描述】:

我检查了 msdn。对于鼠标滚轮相关的事件,只有一个选项——UIElement.MouseWheel

我想做的是监听鼠标滚轮向前(向上)和向后(向下)滚动事件。

注意:不是 单击中间的滚轮按钮。

【问题讨论】:

    标签: c# wpf mousewheel


    【解决方案1】:

    不,只有一个事件。当您查看 MouseWheelEventArgs 类时,有一个属性 Delta。当滚轮远离用户旋转时,Delta 为正,当滚轮向用户旋转时,Delta 为负。

    【讨论】:

      【解决方案2】:

      对于鼠标滚轮相关的事件,只有一个选项

      不,还有其他的。

      还有PreviewMouseWheel其功能与MouseWheel 事件类似,但在键盘和鼠标处理的不同点上运行。)。

      预览还有一个Delta 属性,它给出了车轮旋转的方向。


      示例

      private void PreviewMouseWheel(object sender, MouseWheelEventArgs e)
      {
          if (e.Delta > 0)
              DoActionUp();
      
          else if (e.Delta < 0)
              DoActionDown();
      }
      

      【讨论】:

      • 除了建议活动的预览版本(除非有充分的理由,否则您通常不想这样做),这与接受的答案有什么不同?
      • @JoeWhite 它不是 WPF 下一版本中的预览......它意味着窥视(预览)下一个值是什么,并且是在 WPF 中使用的有效事件。
      • 我喜欢这个答案,因为它也提供了代码。但是,您不需要 PreviewMouseWheel。您可以只使用 MouseWheel 事件。
      • 显然,如果控件使用滚轮(例如带有滚动的控件),则在调用事件 PreviewMouseWheel 时根本不会调用事件 MouseWheel。
      • 这是因为路由事件在 WPF 中的工作方式。他们使用路由策略,例如隧道(PreviewNNNEvent)或冒泡(NNNEvent):docs.microsoft.com/en-us/archive/msdn-magazine/2008/september/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多