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是不是有鼠标滚轮上下滚动事件的主要内容,如果未能解决你的问题,请参考以下文章