笔势:

Windows Phone 用户可以使用触控笔势与他们的手机进行交互。触控笔势被定义为用户在触摸屏上使用单个或多个手指发起的运动。Windows Phone 上支持的控件都可以识别笔势。这些控件支持诸如点击平移轻拂等笔势。您可以通过使用在几乎所有可视元素上都存在的 UIElement 事件处理简单的笔势,如点击双击长按。有关笔势支持的更多信息,请参见 Windows Phone 手势支持

Windows Phone 7的 Silverlight 应用程序:

获取低级触控输入

通过静态 Touch.FrameReported 事件

获取高级输入

通过各种 Manipulation 路由事件

Windows Phone 7 的 XNA 应用程序:

静态的 TouchPanel 类(整合了两个触控界面)

GetState 方法获取低级手指活动

ReadGesture 方法获取高级手势。

为了与 XNA 体系结构保持一致,触控输入由应用程序轮询,而不是通过事件传送。

Silverlight中:

在工具包中新增此 Silverlight 手势支持旨在提供与 XNA TouchPanel.ReadGesture 方法相似的功能,但它是通过路由事件而不是轮询实现的。

看一下源代码,我非常吃惊地发现这些新的 Silverlight 手势事件完全是由对 XNA TouchPanel.ReadGesture 方法的调用派生而来的。 我也不会想到 Windows Phone 上的 Silverlight 应用程序会被允许调用此 XNA 方法,但事实就是这样。

尽管 Silverlight 和 XNA 手势非常相似,但是与手势相关的属性却不相似。 例如,XNA 属性使用的是矢量,而 Silverlight 不包含 Vector 结构(我觉得这是一个荒谬的遗漏),所以必须按照某些简单的方式为 Silverlight 重新定义属性。

以下是 12 个可用的手势事件,我将按大致顺序对其进行讨论(我将其分组到同一行的事件是相关的,而且发生顺序相同):

(1)GestureBegin, GestureCompleted(Gesture手势)

(2)Tap(中文意思:轻敲;轻打;轻拍;轻击)

(3)DoubleTap
(4)Hold
(5)DragStarted, DragDelta, DragCompleted(Drag拖)
(6)Flick(中文意思:轻弹;忽然摇动;轻轻拂去)
(7)PinchStarted, PinchDelta, PinchCompleted(中文意思:捏)

 

假设您要处理发生在 Grid 或任何子 Grid 的 Tap 和 Hold 事件。 您可以在 XAML 文件中进行指定,指定方法如下所示:

另外一种方法:

注意:不管是哪种情况,如果要在面板上设置此手势侦听器,请确保至少将 Background 属性设为 Transparent!事件将通过一个默认背景为空的面板来实现。

Tap 和 Hold

所有手势事件都附带类型为 GestureEventArgs 或从 GestureEventArgs 派生的类型的事件参数。

OriginalSource 属性指示碰到屏幕的第一根手指触摸到的最顶层的元素;GetPosition 方法提供这根手指相对于任何元素的当前坐标。

可对手势事件进行路由,这意味着它们可以在可视树中传递,并且可以针对安装了GestureListener 的任何元素进行处理。

与往常一样,事件处理程序可以将 GestureEventArgs 的 Handled 属性设置为 true,以防止事件在可视树中进一步传递。但是,这只能影响使用这些手势事件的其他元素。将 Handled 设置为 true 并不能防止可视树中较高级别的元素通过其他界面获取触控输入。

GestureBegin 事件指示有手指触摸了以前手指未触摸到的屏幕;当所有手指都离开屏幕后,GestureCompleted 会发出信号。这些事件可以为初始化或清理提供便利,但是您通常会更关注在这两个事件之间发生的手势事件。

我不会在较简单的手势上花费太多的时间。

(1)当有手指触摸屏幕,然后在大约 1.1 秒内抬起,并且手指从原始位置并未移动很远时,会发生 Tap。

(2)如果相继两次点击的时间间隔太短,那么第二次点击会被当作 DoubleTap 接收。

(3)当有手指在屏幕上按下并在大致相同的位置停留大约 1.1 秒时会发生 Hold。Hold 事件在这个时间结束时生成,不需要等到手指离开屏幕。

Drag 和 Flick

当有手指触摸屏幕、在屏幕上移动或离开屏幕时会发生 Drag 序列(包含一个 DragStarted 事件、零个或更多 DragDelta 事件以及一个 DragCompleted 事件)

windows phone 之笔势的更多相关文章

  1. windows服务参考

    dll文件 aaclient.dll 何时何地都可以访问客户端 accessibilitycpl.dll 轻松访问控制面板 acledit.dll 访问控制列表编辑器 aclui.dll 安全描述符编 ...

  2. Windows phone 8 学习笔记(1) 触控输入(转)

    Windows phone 8 的应用 与一般的Pc应用在输入方式上最大的不同就是:Windows phone 8主要依靠触控操作.因此在输入方式上引入一套全新的触控操作方式,我们需要重新定义相关的事 ...

  3. Windows Phone 8 蓝牙编程

    蓝牙是手机的近距离无限传输的技术,在之前的Windows Phone 7系统手机里面仅支持蓝牙耳机功能,并不支持蓝牙文件信息传输,那么在Windows Phone 8手机里面将全面支持蓝牙技术,并且提 ...

  4. Windows phone 8 学习笔记(1) 触控输入

    原文:Windows phone 8 学习笔记(1) 触控输入 Windows phone 8 的应用 与一般的Pc应用在输入方式上最大的不同就是:Windows phone 8主要依靠触控操作.因此 ...

  5. Windows server 2012 添加中文语言包(英文转为中文)(离线)

    Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...

  6. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  7. C# 注册 Windows 热键

    闲扯: 前几日,一个朋友问我如何实现按 F1 键实现粘贴(Ctrl+V)功能,百度了一个方法,发给他,他看不懂(已经是 Boss 的曾经的码农),我就做了个Demo给他参考.今日得空,将 Demo 整 ...

  8. Windows 7上执行Cake 报错原因是Powershell 版本问题

    在Windows 7 SP1 电脑上执行Cake的的例子 http://cakebuild.net/docs/tutorials/getting-started ,运行./Build.ps1 报下面的 ...

  9. 在离线环境中发布.NET Core至Windows Server 2008

    在离线环境中发布.NET Core至Windows Server 2008 0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面作为测试,现在打算发布 ...

随机推荐

  1. 机器学习笔记1——Linear Regression with One Variable

    Linear Regression with One Variable Model Representation Recall that in *regression problems*, we ar ...

  2. python Day 2 - 编写数据库模块

    在一个Web App中,所有数据,包括用户信息.发布的日志.评论等,都存储在数据库中.在awesome-python-app中,我们选择MySQL作为数据库. Web App里面有很多地方都要访问数据 ...

  3. 解决Ubuntu Server 12.04换了网卡MAC地址后 网络不可用的问题.

    重装了系统,新建了一个ubuntu虚拟机,加载原来的镜像,结果启动后网络变得不正常了,提示信息 Waiting for network configuration...Waiting up to 60 ...

  4. SourceTree的基本使用

    1. SourceTree是什么 拥有可视化界面的项目版本控制软件,适用于git项目管理 window.mac可用 2. 获取项目代码 1. 点击克隆/新建 2. 在弹出框中输入项目地址,http或者 ...

  5. 【python自动化第一篇:python介绍与入门】

    一.python介绍以及发展史  1.1 python的介绍: 简单点来说吧,python这玩意儿是一个叫做Guido van Rossum的程序猿在1989年的圣诞打发时间而决心去开发的一个脚本编程 ...

  6. tomcat多域名配置

    1.找到你的tomcat然后在conf文件中找到server.xml打开: <Server port="8005" shutdown="SHUTDOWN" ...

  7. WEB DYNPRO SAP HELP

    http://help.sap.com/saphelp_nw70ehp1/helpdata/EN/43/70d83e8cb23d67e10000000a114084/content.htm

  8. git 命令归纳

    git 新手一枚,随用随更新 git clone git@example.com:project-name.git 克隆 git branch [-a -r] 查看分支[所有 远端] git pull ...

  9. Android-Wheel-Menu

    https://github.com/anupcowkur/Android-Wheel-Menu

  10. [Redux] Wrapping dispatch() to Log Actions

    We will learn how centralized updates in Redux let us log every state change to the console along wi ...