Welcome

首页 / 软件开发 / Silverlight / Silverlight多点触控(MultiTouch)

Silverlight多点触控(MultiTouch)2011-04-13 博客园 双宇多点触控输入是一种输入类型,它依赖于触摸屏输入概念,还可能依赖多种触控及其被解释为单元(有时也称为帧)的特征。多点触控输入需要有对触控敏感的硬件,以及支持将触控事件向各应用程序公开所需基础结构的环境。本主题讨论 Silverlight 中对多点触控的支持,并介绍几个关键概念。

多点触控硬件

多点触控这一概念需要能够记录表面上所产生触压的硬件。该表面可以直接是屏幕(如 Tablet PC 设备),也可以是单独的专用输入设备(如绘图板)。其中,Tablet PC 设备或 类似的显示屏直接对触控敏感的设备通常与 Silverlight 关联最大。

平台要求

多点触控需要有能够将触摸屏输入传播到某一个应用程序(如基于 Silverlight 的应用 程序)的环境(平台和操作系统、诸如浏览器等的宿主应用程序)。

在操作系统级别上,Windows 7 支持多点触控输入。一部分是通过消息 WM_TOUCH 来支持 的。该操作系统已在此级别将多点触控消息提升为鼠标消息,由此使多点触控用户在与可能 不具触控识别能力,而是通过鼠标事件/消息执行其所有空间输入处理的应用程序进行交互时 ,可以使用触控和笔势来代替鼠标移动或鼠标单击。Windows 7 还可在适当时合并这些消息 。

Internet Explorer 版本 8 作为宿主也是能识别多点触控的,它转发平台多点触控消息 的方式为:插件(如 Silverlight)可以与宿主中的多点触控交互。

Silverlight 的多点触控输入

注册多点触控

作为操作系统的多点触控设计的一部分,每个希望独立接收多点触控消息的应用程序必须 注册其 HWND(为此,Windows 7 的触控 API 包含 RegisterTouchWindow)。对于整个 Silverlight 和所有将 Silverlight 用作运行时的应用程序,Silverlight 编程环境负责此 注册步骤。因此,通常不需要直接与平台代码交互来处理多点触控输入。但是,由 Silverlight 为自身注册多点触控的方式所声明的多点触控交互的特有特征是相当具有特定 性的:

Silverlight 注册原始触控输入,而不注册笔势。如果需要包含笔势,您必须在 Silverlight 的上下文中使用自己的应用程序代码将触摸屏输入处理为笔势。此外,还需要 进行更大规模的互操作设计,以便您可以在其中包含一个单独的 HWND,它将从平台进行笔势 的多点触控注册,并且与 Silverlight 内容区域进行互操作。

通常,Silverlight 将原始触摸屏输入提升至鼠标事件。(但是,可以基于每个触控帧禁 用提升,在本主题的下面几节中将会说明。)