如何处理 WPF 中的鼠标滚轮单击事件?

Posted

技术标签:

【中文标题】如何处理 WPF 中的鼠标滚轮单击事件?【英文标题】:How can I handle the mouse wheel click event in WPF? 【发布时间】:2010-10-05 18:39:03 【问题描述】:

我想在单击鼠标滚轮时关闭选项卡控件中的选项卡。如何在 WPF 中捕获此事件?

编辑: 代码如下:

private void tabMain_MouseDown(object sender, MouseButtonEventArgs e)
    
        if(e.ChangedButton == MouseButton.Middle && e.ButtonState == MouseButtonState.Pressed)
        
            MessageBox.Show("Middle button clicked");
        
    

【问题讨论】:

【参考方案1】:

Mousewheel 其实就是 MiddleButton,所以 Wheel 点击 MouseDown 事件的条件是 ChangedButton == Middle && ButtonState == Pressed

【讨论】:

是否有理由在 MouseDown 事件中检查ButtonState == ButtonState.Pressed?还是只是从某个地方复制/粘贴?【参考方案2】:

更简单的解决方案

if (e.MiddleButton) MessageBox.Show("Middle button clicked");

【讨论】:

在 wpf 中? MouseButtonEventArgs.MiddleButton 是一个枚举。无法转换为布尔值。

以上是关于如何处理 WPF 中的鼠标滚轮单击事件?的主要内容,如果未能解决你的问题,请参考以下文章

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

JS怎么禁止鼠标滚轮的单击 IE下! 注意是滚轮去单击 而不是滚动!

鼠标滚轮增量值始终为 120

鼠标滚轮在功能区中的列表框上滚动 [WPF]

鼠标事件

鼠标与滚轮事件