WPF是不是有鼠标滚轮上下滚动事件

Posted

技术标签:

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

我检查了 msdn。对于鼠标滚轮相关的事件,只有一个选项——UIElement.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/…

以上是关于WPF是不是有鼠标滚轮上下滚动事件的主要内容,如果未能解决你的问题,请参考以下文章

JS如何判断鼠标滚轮事件分析

鼠标滚轮事件

jQuery中有鼠标滚轮事件么?

js 检测鼠标滚轮上下滚动

网页不能用鼠标滚轮控制滚动条 我鼠标滚轮上下滚动。。但网页没反应。这是怎么回事。。怎么修复。。

ulli鼠标滚轮水平滚动