在 Windows 10 中触控笔未触发 InkCanvas 事件

Posted

技术标签:

【中文标题】在 Windows 10 中触控笔未触发 InkCanvas 事件【英文标题】:Stylus pen not firing events for InkCanvas in Windowss 10 【发布时间】:2018-07-05 06:45:17 【问题描述】:

我有一台戴尔 Latitude 5285 和配对的戴尔主动式触控笔 (PN556W)。我正在开发一个 UWP 测试应用程序来尝试新事物,我碰巧注意到 Stylus 不会启动任何与 InkCanvas 相关的事件。

如果我用手指,就会触发事件。而且我仍然可以用手写笔在定义的区域上书写。据我所知,没有与 UWP 的 InkCanvas 相关联的其他类型的事件与绘图/描边/墨迹/等交互。

MainPage.xaml

<InkCanvas Name="MyCanvas" Weight="500" Height="500"
    PointerPressed="MyCanvas_PointerPressed"
    PointerMoved="MyCanvas_PointerMoved"
    PointerReleased="MyCanvas_PointerReleased"
    PointerEntered="MyCanvas_PointerEntered"
    PointerExited="MyCanvas_PointerExited">
</InkCanvas>

MainPage.xaml.cs

InkPresenter myInkPresenter = MyCanvas.InkPresenter;
myInkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Pen | Windows.UI.Core.CoreInputDeviceTypes.Touch | Windows.UI.Core.CoreInputDeviceTypes.Mouse;
//... Event methods not provided.  Each one essentially adds some text to a textbox for reading output

有没有人在使用其他配对的测针/电脑时看到过这种行为和/或知道如何纠正它?

附带说明:我也尝试使用触控笔来处理使用以前的 Windows 8 Inking/Canvas 功能的应用程序,但除非我将触控笔关闭并在距离屏幕 3 厘米以内,否则笔无法书写.

【问题讨论】:

【参考方案1】:

我发现跟踪笔画输入的实际事件位于InkPresenter 下,而不是InkCanvas 下。

例子:

MyCanvas.InkPresenter.StrokeInput.StrokeStarted += StrokeInput_StrokeStarted;

来源 UWP InkPresenter

【讨论】:

以上是关于在 Windows 10 中触控笔未触发 InkCanvas 事件的主要内容,如果未能解决你的问题,请参考以下文章

从 iPad 触控笔获取生物特征信息

Web 浏览器中的笔/触控笔支持

在网站上使用 Surface Pro 触控笔

在掌上电脑上绘图时,触控笔指向无法正常工作

Pointer Event Api-整合鼠标事件触摸和触控笔事件

Android HTC Flyer - 使用 MotionEvents 捕捉触控笔