笔势:

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. public static void Invoke (Action action)

    using System; using System.Security.Principal; using System.Security.Permissions; namespace Demo { c ...

  2. 让 File Transfer Manager 在新版本WIndows上能用

    最近研究.NET NATIVE,听说发布了第二个预览版,增加了X86支持,所以下,发现连接到的页面是:https://connect.microsoft.com/VisualStudio/Downlo ...

  3. 领会CSS,实际中的研究

    虽懂却不会,真是可怕,自认懂却了无. 善用CSS属性选择器 在用于区别和唯一的情况下完全可以使用属性选择器,而没有必要使用class或id p[city="http://www.css.co ...

  4. 主机访问虚拟机中linux上的web服务

    环境:主机windows xp 虚拟机centos 6.4 [root@localhost /]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT[root ...

  5. Linux服务器的常用备份方法

    系统备份是系统管理工作中十分重要的一个环切,本文详细介绍了各种Linux系统的备份方法,相信对大家的日常管理工作有所帮助. 备份是一项重要的工作,但是很多人没有去做.一旦由于使用不当造成数据丢失,备份 ...

  6. 微信小程序 TLS 版本必须大于等于1.2问题解决

    微信小程序  TLS 版本必须大于等于1.2问题解决 此问题最近在微信小程序开发中,比较常见. 在解决这个问题之前,我们需要了解一下,当前的系统环境是否支持TLS1.2以上,可以参考一下表格: 确认系 ...

  7. shell(1)

    1:实现shell脚本中循环调用函数 #!/bin/bash output(){ ; num1 <= ; num1++ )) do echo -n "$num1 " done ...

  8. Exp5

    实验 实验1 - 直接攻击系统开启的漏洞服务,获取系统控制权 1.选择要使用的模块 在这里我选择的模块是ms08_067 首先我们需要查询一下有关ms08_067所在模块的相关信息 search ms ...

  9. BZOJ.2660.[BJOI2012]最多的方案(DP)

    题目链接 首先我们知道: 也很好理解.如果相邻两项出现在斐波那契表示法中,那它们显然可以合并. 所以我们能得到\(n\)的斐波那契表示,记\(pos[i]\)为\(n\)的斐波那契表示法中,第\(i\ ...

  10. 【BZOJ3160】万径人踪灭 Manacher+FFT

    [BZOJ3160]万径人踪灭 Description Input Output Sample Input Sample Output HINT 题解:自己想出来1A,先撒花~(其实FFT部分挺裸的) ...