为什么触摸我的对象时会触发 Stylus 和 Mouse 事件?

Why are Stylus and Mouse events fired when touching my object?

我有一个 PushPin 对象,我已经连接了一些 Touch/Stylus/Mouse 事件:

pp.MouseDown += pp_MouseDown;
pp.TouchDown += pp_TouchDown;
pp.TouchUp += pp_TouchUp;
pp.StylusDown += pp_StylusDown;
pp.StylusUp += pp_StylusUp;

处理程序

    void pp_MouseDown(object sender, MouseButtonEventArgs e)
    {
        PushPinUpOrDown(sender);
        e.Handled = true;
    }

    private void pp_TouchDown(object sender, TouchEventArgs e)
    {
        var pushpin = (sender as Pushpin);
        pushpin.CaptureTouch(e.TouchDevice);
        e.Handled = true;
    }

    void pp_StylusDown(object sender, StylusDownEventArgs e)
    {
        var pushpin = (sender as Pushpin);
        pushpin.CaptureStylus();
        e.Handled = true;
    }

    void pp_StylusUp(object sender, StylusEventArgs e)
    {
        var pushpin = (sender as Pushpin);
        e.Handled = true;
        if (pushpin != null && e.StylusDevice.Captured == pushpin)
        {
            PushPinUpOrDown(sender);
            pushpin.ReleaseStylusCapture();
        }

    }

    void pp_TouchUp(object sender, TouchEventArgs e)
    {
        var pushpin = (sender as Pushpin);
        e.Handled = true;
        if (pushpin != null && e.TouchDevice.Captured == pushpin)
        {
            PushPinUpOrDown(sender);
            pushpin.ReleaseTouchCapture(e.TouchDevice);

        }
    }

但是当我触摸我的 PushPin 时,首先会触发 StylusDown 事件,然后是 MouseDown。我期望触发的 TouchDown 事件永远不会触发。

这是为什么?这是我的程序或显示器的问题吗?

我需要 Stylus 和 Touch 事件吗?

(我使用的是触控显示器,不是平板电脑或其他任何东西)

所以从 here 我得到了代码:

    void pp_StylusDown(Object sender, StylusEventArgs e)
    {
        if (sender != null)
        {
            //Capture the touch device (i.e. finger on the screen)
            e.StylusDevice.Capture(sender as Pushpin);
        }
    }

    void pp_StylusUp(Object sender, StylusEventArgs e)
    {
        var device = e.StylusDevice;

        if (sender != null && device.Captured == sender as Pushpin)
        {
            (sender as Pushpin).ReleaseStylusCapture();
            PushPinUpOrDown(sender, true);
            e.Handled = true;
        }
    }

它停止了 MouseDown 事件触发。主要原因(奇怪地)是从 pp_StylusDown 中删除 e.Handled = true 解决了问题

仍然无法解释触摸屏幕时触发手写笔事件的原因