[翻译]WP7 QuickStart-第九篇-触控输入
原文地址:http://create.msdn.com/en-US/education/quickstarts/Touch_Input
【译者注:这篇文章是翻译自微软官方的WP7 QuickStart的第九篇,讲述WP下的触控输入。部分内容加入了自己的理解和表达习惯。而翻译此系列的主要目的一是为了练习英语,二是让自己作为一个 BI开发者对WP7的开发有一个了解。部分翻译不当的地方望各位高人指出批评指正】
Windows Phone设备的屏幕都是支持多点触控的,允许用户多指同时操作实现不同的手势功能,比如单击,滑动和放大缩小。Windows Phone下的Silverlight有很多种不同的处理触控输入的方法。此篇描述触控输入的基础内容。
主要包含一下部分:
触控输入介绍
手势功能
鼠标事件
Manipulation(操纵)事件
Windows Phone的Silverlight工具包
UI设计与触控输入
留意:
此篇包含一些实时演示,是通过浏览器中的Silverlight来模拟Windows Phone下Silverlight的效果。实际的操作可能会和模拟器中或者实际设备中的效果略有不同。
触控输入介绍
Windows Phone使用触控的方式完成大多数的输入操作,它支持多点触控让用户以手势操作的方式跟设备交互。填加触控和手势功能将会使程序的用户体验大大提高。在Windows Phone下的Silverlight 可以以很多种方式来处理触控操作。
Silverlight下的鼠标事件可以用来检测一些简单的,单指点击或者双击。鼠标事件在代码中使用很方便和快捷,也是一种实现基本触控功能比较简单的方法。
Manipulation事件,比如ManipulationStarted和ManipulationDelta,用来处理更加复杂的手势功能,比如多点触控时的手势功能和用到惯性和速度的手势功能。
TouchPoint类是另外一种处理触控输入的方法。TouchPoint是一个低级别触控系统,此篇暂不对其进行描述。
第四种方法就是使用Windows Phone下的Silverlight工具包的GestureService和GestureListner类。这个工具包是开源项目,不输入Windows Phone下Silverlight核心的一部分,但是有一些早期版本的控件已经加入到了后续版本的Silverlight中。
手势功能
手势功能是一种高级别的方式来把触控数据解释成一些基本的动作,比如点击,滑动和放大缩小。在Windows Phone通用的手势如下:
Tab
手指按下屏幕并抬起
Double Tab
手指敲击屏幕两次
Hold
手指在一个地方短时间的持续点击
Drag
手指按住屏幕并且向一个方向移动
Flick
手指的滑动操作
Pinch
两指在屏幕上的移动
Windows Phone下的Silverlight鼠标事件,比如MouseLeftButtonUp和MouseMove可以用来支持一些最基本的单指操作,比如单击。
对于一些多点触控的手势操作比如放大缩小,还有用到惯性和速度数据的手势比如滑动,就需要用到Manipulation事件,这个事件里提供的信息不是手势的相关信息,而是一些触控的数据,比如位置,和translation delta【译者注:位移增量?】以及速度。这些触控数据可以用来判定手势动作的种类。而开发人员需要做的就是将这些信息转换成等价手势功能。另外,Windows Phone的Silverlight工具包也通过GestureService和GestureListner两个类提供了对手势功能的支持。