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

多事件绑定同一处理程序时,如何判断触发的具体事件?

如何在共享事件处理程序中区分PointerPressed和PointerMoved事件?

你的代码示例

XAML部分:

<Canvas PointerPressed="Handler" PointerMoved="Handler"/>

C#处理程序:

void Handler(object sender, PointerRoutedEventArgs e) {
    /*
     
    */
}

解决方案

直接通过PointerRoutedEventArgs的PointerUpdateKind属性就能区分触发事件的类型,这个属性属于PointerUpdateKind枚举,包含了所有指针事件的类型标识。

修改后的处理程序代码如下:

void Handler(object sender, PointerRoutedEventArgs e) {
    if (e.PointerUpdateKind == PointerUpdateKind.PointerPressed)
    {
        // 这里写PointerPressed事件的处理逻辑
    }
    else if (e.PointerUpdateKind == PointerUpdateKind.PointerMoved)
    {
        // 这里写PointerMoved事件的处理逻辑
    }
}

除了这两种类型,PointerUpdateKind枚举还涵盖了PointerReleased、PointerWheelChanged等其他指针事件类型,后续如果需要把更多指针事件绑定到同一个处理程序,也可以用同样的方式判断。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:42:36