Windows runtime 在Windows 8中从桌面应用程序调用WinRT GestureRecognitor

Windows runtime 在Windows 8中从桌面应用程序调用WinRT GestureRecognitor,windows-runtime,desktop,Windows Runtime,Desktop,GestureRecognitor位于可从win8中的桌面应用程序调用的API列表中。 问题是要调用ProcessDownEvent,我需要传递一个PointerPoint。我只能从CoreWindow对象中得到一个。。。我被卡住了,因为很明显,CoreWindow.GetForCurrentThread()不是一个“Metro”应用程序,它返回null 有什么提示吗?指针点似乎有静态方法来获取某些指针的信息,其中一种方法是:,显然这是不可能的,根据这个组合 使用此选项:至少支持客户端Win

GestureRecognitor位于可从win8中的桌面应用程序调用的API列表中。

问题是要调用ProcessDownEvent,我需要传递一个PointerPoint。我只能从CoreWindow对象中得到一个。。。我被卡住了,因为很明显,CoreWindow.GetForCurrentThread()不是一个“Metro”应用程序,它返回null


有什么提示吗?

指针点似乎有静态方法来获取某些指针的信息,其中一种方法是:

,显然这是不可能的,根据这个组合

使用此选项:至少支持客户端Windows 8[仅限Windows应用商店应用程序]

可惜的是,手势识别器与Metro应用程序的联系如此紧密。基本上只是数学


这些选项是遗留API或DirectManipulation,它们的文档记录非常糟糕。对于一家把一切都押在“触摸”上的公司来说,这算是一句话。

桌面上的手势识别器的等价物是InteractionContext,您不需要处理直接操纵


关于它的文档不多,但这里有一个代码示例:

问题是指针Id只能通过CoreWindow调用使用。也就是说,您需要订阅CoreWindow::PointerPressed事件,并通过args.CurrentPoint.PointerId获取指针Id。我尝试过0或1,但它不起作用(我不会硬编码这些值),谢谢。我的问题并不完全准确,因为我指的是托管桌面应用程序。我已经试着使用WPF来达到我的目的,但我无法解决随机延迟的问题。。。我来看看链接。