You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何区分PointerWheelChanged事件中鼠标滚轮的滚动与倾斜操作?

区分鼠标滚轮上下滚动与倾斜操作的方法

你之前用的MouseWheelDelta其实仅对应垂直方向的滚轮增量,要判断是上下滚动还是左右倾斜,需要直接读取PointerPointProperties中的两个细分属性:

  • MouseWheelDeltaY:对应垂直滚轮动作,正值表示向上滚动,负值表示向下滚动
  • MouseWheelDeltaX:对应水平倾斜动作,正值表示向右倾斜,负值表示向左倾斜

修改后的代码示例:

private void TestScrollViewer_PointerWheelChanged(object sender, PointerRoutedEventArgs e)
{
    PointerPoint ptrPt = e.GetCurrentPoint((UIElement)sender);
    var wheelProperties = ptrPt.Properties;

    // 处理垂直滚动
    int verticalDelta = wheelProperties.MouseWheelDeltaY;
    if (verticalDelta > 0)
    {
        // 执行向上滚动逻辑
    }
    else if (verticalDelta < 0)
    {
        // 执行向下滚动逻辑
    }

    // 处理水平倾斜滚动
    int horizontalDelta = wheelProperties.MouseWheelDeltaX;
    if (horizontalDelta > 0)
    {
        // 执行向右倾斜逻辑
    }
    else if (horizontalDelta < 0)
    {
        // 执行向左倾斜逻辑
    }
}

补充说明:原代码中的MouseWheelDelta本质是MouseWheelDeltaY的快捷属性,仅能反馈垂直方向的滚轮变化,无法捕捉水平倾斜的动作,因此必须单独读取X轴增量来区分两种操作。

内容的提问来源于stack exchange,提问作者RD4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 22:20:41