【问题标题】:Windows 8 Desktop multitouch APIWindows 8 桌面多点触控 API
【发布时间】:2013-02-16 19:59:09
【问题描述】:

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

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

有没有人以前遇到过这个问题?

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

谢谢。

【问题讨论】:

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


    【解决方案1】:

    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/

    【讨论】:

    • 感谢 Maf,但我认为指针 API 是用于 c++ 代码的,我找不到与 c# 类似的 API。
    • 然后 WPF 4 多点触控 API 是要走的路。微软刚刚在 Windows 8 Metro 应用和 C++ 低级事件中引入了新的多点触控 API。
    【解决方案2】:

    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://web.archive.org/web/20150709083602/https://connect.microsoft.com/VisualStudio/feedback/details/903760/wpf-touch-services-are-badly-broken

    如果您的 c# 桌面应用程序正在使用 WPF,那么您唯一可行的选择是实现自己的 TOUCHDEVICE 来修复这些基本问题,因为 Microsoft 似乎已决定 WPF 触摸不再重要。

    【讨论】:

      【解决方案3】:

      这取决于您在应用中的实际需求。

      如果您只想要新的快速旋转和缩放对象的方法,也许WPF Manipulation API 就是您所需要的。

      但是,如果您需要在 GUI 上独立处理多个手指,或者以自定义方式处理,您只需处理通常的 OnTouchDownOnTouchMove 和其他事件。

      但请注意,多点触控只能在单个窗口内使用。换句话说:您可以多点触摸同一窗口上的两个对象,但不能多点触摸驻留在不同窗口上的两个对象。如果您想要多点触控、多窗口功能,您需要:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多