Windows 8桌面多点触控API

时间:2013-02-16 19:59:10

标签: c# wpf windows-8 multi-touch

我正在为Windows 8,桌面模式开发一个c#touch应用程序,而我无法找到最佳方法。我的问题是:我应该使用现有的Windows 7 Touch API c#还是有一个新的多点触控c#API可用于开发Windows 8桌面应用程序?

我知道Windows 8对win7 touch api有遗留支持,只需要一些见解和反馈,如果仍然是最好也是唯一的方法。

有没有人有此问题的经验?

编辑:我发现这篇文章:http://software.intel.com/en-us/articles/touch-gestures,基本上UIElement公开了启用触摸操作的方法。也许这是要走的路。有什么想法吗?

谢谢。

3 个答案:

答案 0 :(得分:2)

Windows 8 API有一个基于WM_POINTER消息的新API,请参阅http://msdn.microsoft.com/en-us/library/hh454916(v=vs.85).aspx

Windows 7 API有一些缺点,请参阅http://the-witness.net/news/2012/10/wm_touch-is-totally-bananas/

答案 1 :(得分:0)

WM_TOUCHxxx消息不容易出现此问题:

http://social.msdn.microsoft.com/Forums/en-US/ce6d630a-b345-46ac-88ef-773704986d62/touch-responsiveness-issue-how-to-resolve-jagged-nonsmooth-lines?forum=winappswithcsharp

WM_TOUCHxxx和WM_POINTERxxx消息都会出现这个问题:

https://connect.microsoft.com/VisualStudio/feedback/details/903760/wpf-touch-services-are-badly-broken

如果您的c#桌面应用程序正在使用WPF,那么您唯一可行的选择是实现自己的TOUCHDEVICE来修复这些潜在问题,因为看起来微软已经确定WPF触摸不再重要。

答案 2 :(得分:0)

这取决于您对应用程序的实际需求。

如果只希望使用新的快速方法来旋转和缩放对象,则可能只需要enter image description here

但是,如果需要在GUI上独立地或以自定义方式处理多个手指,则只需处理常见的WPF Manipulation APIOnTouchDown和其他事件。

请注意,但是,多点触摸仅在单个窗口内可用。换句话说:您可以在同一窗口上多点触摸两个对象,但是您将无法对位于不同窗口上的两个对象进行多点触摸。如果您想要多点触摸,多窗口功能,则需要: