快速构建Windows 8风格应用35-触控输入
引用
Windows 8设备通常具有多点触摸屏,用户可以同时使用多个手指来进行不同的输入交互,如点击、拖动或收缩等手势操作。另外Windows 8中将触摸、鼠标和笔/触笔交互是作为指针输入进行接收、处理和管理。
一、手势处理
首先我们来汇总一下Windows 8中常用的手势都有哪些。
1,点击:用一个手指触摸屏幕,然后抬起手指。
2,长按:用一个手指触摸屏幕并保持不动。
3,滑动:用一个或多个手指触摸屏幕并向着同一方向移动。
4,轻扫:用一个或多个手指触摸屏幕并向着同一方向移动较短距离。
5,收缩:用两个或多个手指触摸屏幕,然后将手指并拢在一起或分开。
6,旋转:用两个或多个手指触摸屏幕并沿着顺时针或逆时针的弧线移动。
7,拉伸:用两个或多个手指触摸屏幕,然后将手指分开。
我们如何处理Windows 8中手势呢?
先来看一下Windows 8手势API:
这些手势都是以Manipulation API为基础进行处理的,其中Hold和Tap手势是基于Manipulation进行了封装,那么其他手势都是使用Manipulation API进行处理的。
以下是在Manipulation API几个常用事件:
- ManipulationStarting:在首次创建操作处理器时触发。
- ManipulationStarted:当输入设备对 UIElement 对象开始操作时触发。
- ManipulationDelta:当输入设备在操作期间更改位置时触发。
- ManipulationCompleted:对于 UIElement 对象的操作和延时完毕时触发。
- ManipulationInertiaStarting:当输入设备在操作期间与 UIElement 对象失去联系且延时开始时触发。
点击手势(双击、单击、右击):
这里以单击为例(双击、右击处理方式雷同):
通常我们可以实现通过点击事件可以处理跳转某一页面等操作,并且在“OpeningMessage_Tapped”中处理代码业务逻辑。
按下并保持手势:
通常我们可以按下应用中某一项并保持,浏览关于该项的更多信息,类似于WindowsPhone中长按某一条短信,可以选择复制,转发,删除等操作。
滑行拖动手势:
通常我们可以通过滑行拖动手势进行拖动图片,由于未提供滑行拖动手势操作的API,只能通过处理ManipulationDelta事件进行实现效果。
缩放手势:
我们可以通过该手势进行缩放图片,由于未提供缩放手势操作的API,只能通过处理ManipulationDelta事件进行实现效果。
旋转手势:
我们可以通过旋转手势进行旋转图片,其实逻辑比较简单,只需要处理当前图片角度+(图片角度*180/PI值),然后重新赋值就行了。
二、指针处理
以前应用中处理对鼠标,触控和手写笔的响应,需要多个不同的事件处理程序,很容易造成代码质量低劣,易于产生复制粘贴错误。微软通过分析不同设备和形式之间的一些共同点,最后将指针输入的方法整合到一个一致的API中。使用指针事件为鼠标,触控和手写笔创造了一致,简单的体验。
以下是指针事件处理常用的事件:
(以在图片上进行画图为例)
1,PointerPressed:手指,鼠标或手写笔点击屏幕时发生。
当指针按下时候记录收集当前指针。
2,PointerMoved:手指,鼠标或手写笔在屏幕上拖动时发生。
可以通过触发PointerMoved事件,将前一个点击位置和当前点击位置绘制成一条线。
3,PointerReleased:手指,鼠标或手写笔抬起时发生。
可以通过触发PointerReleased事件,将点击位置从集合中移除。
4,PointerExited:手指,鼠标或手写笔离开时发生。
可以通过触发PointerExited事件,将点击位置从集合中移除。
三、指针与手势系统的交互优势
1,有助于对应用性能提升
2,简化对大量输入发送自动触及的处理
3,减少编写的代码量
4,有助于缓解开发困境
更多关于手势与指针处理资料可参考:
2,快速入门:指针(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用) (Windows);
3,快速入门:触摸输入(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用) (Windows);
4,Input: XAML user input events sample;
快速构建Windows 8风格应用35-触控输入的更多相关文章
- 快速构建Windows 8风格应用17-布局控件
原文:快速构建Windows 8风格应用17-布局控件 本篇博文主要介绍三种常用的布局控件:Canvas.Grid.StackPanel. Panel类是开发Windows 8 Store应用中一个重 ...
- 快速构建Windows 8风格应用4-FlipView数据控件
原文:快速构建Windows 8风格应用4-FlipView数据控件 本篇博文主要介绍为什么使用FlipView控件.什么是FlipView控件.如何使用FlipView控件和FlipView控件最佳 ...
- 快速构建Windows 8风格应用5-ListView数据控件
原文:快速构建Windows 8风格应用5-ListView数据控件 本篇博文主要介绍什么是ListView数据控件.如何构建ListView数据控件. 什么是ListView数据控件? 1) Li ...
- 快速构建Windows 8风格应用6-GridView数据控件
原文:快速构建Windows 8风格应用6-GridView数据控件 本篇博文主要介绍什么是GridView数据控件.如何构建常用的GridView数据呈现样式. 什么是GridView数据控件? G ...
- 快速构建Windows 8风格应用18-基础控件I
原文:快速构建Windows 8风格应用18-基础控件I 本篇博文主要介绍Windows 8风格应用开发中常用的几种基础控件. ProgressRing: ProgressRing控件常见的效果图: ...
- 快速构建Windows 8风格应用19-基础控件II
原文:快速构建Windows 8风格应用19-基础控件II 本篇博文接着上篇博文<快速构建Windows 8风格应用18-基础控件I>介绍开发Windows 8风格应用中常用控件. Sli ...
- 快速构建Windows 8风格应用33-构建锁屏提醒
原文:快速构建Windows 8风格应用33-构建锁屏提醒 引言 Windows Phone(8&7.5)和Windows 8引入了锁屏概念,其实做过Windows Phone 7.5应用开发 ...
- 快速构建Windows 8风格应用32-构建辅助磁贴
原文:快速构建Windows 8风格应用32-构建辅助磁贴 引言 Windows Phone中,我们开发者可能会开发的一个功能点是将数据列表中某一项"Pin To Start(固定到开始屏幕 ...
- 快速构建Windows 8风格应用29-捕获图片与视频
原文:快速构建Windows 8风格应用29-捕获图片与视频 引言 本篇博文主要介绍Windows 8中相机的概念.捕获图片与视频的基本原理.如何实现捕获图片与视频.相机最佳实践. 一.相机 关于相机 ...
随机推荐
- 接口设计ie常见的问题
问题叙述性说明: 当围绕一个简单的页面布局设计.我发现了一个奇怪的相对布局问题. 同的方式围绕布局接口.它是利用左div浮动.对div设定 margin-left这样达到的效果.实现了chrome浏览 ...
- Spark大师之路:广播变量(Broadcast)源代码分析
概述 近期工作上忙死了--广播变量这一块事实上早就看过了,一直没有贴出来. 本文基于Spark 1.0源代码分析,主要探讨广播变量的初始化.创建.读取以及清除. 类关系 BroadcastManage ...
- JAVA —— 数据类型
引言:java 数据类型可分为两大类:基本数据类型和引用类型,其中基本数据类型又包括整形.浮点型.字符型和布尔型,而引用型变量与基本类型变量不同,它的值是指向内存空间的引用(地址),引用在其他语言中称 ...
- 远程访问mysql(转)
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'<remote addr or %(for all ip addr)>'IDENTIF ...
- 数据存储(两)--SAX发动机XML记忆(附Demo)
Android SDK支撑SAX读取技术XML,SAX通过连续的读取方式来处理XML文件.这要求每个读数XML对应的事件触发,以处理该节点的文件的节点.以下是基于一个例子来告诉SAX使用: publi ...
- git merge简介(转)
git merge的基本用法为把一个分支或或某个commit的修改合并现在的分支上.我们可以运行git merge -h和git merge --help查看其命令,后者会直接转到一个网页(git的帮 ...
- (大数据工程师学习路径)第三步 Git Community Book----中级技能(下)
一.追踪分支 1.追踪分支 在Git中‘追踪分支’是用于联系本地分支和远程分支的. 如果你在’追踪分支'(Tracking Branches)上执行推送(push)或拉取(pull)时,它会自动推送( ...
- 关于在 xmlSPY 出现的错误 DOCTYPE-EXternalID的名称必须既是SYSTEM 又是PUBLIC?(转)
最近我在做学习xml时,遇见一个问题,我本用的是2009 xml spy后来老是出现问题 ,就是不能通过,后来我上网查了一下,发现是以一问题,不管是在2006中还是在2009中,都会出现这样的问题,要 ...
- Hadoop之——HBase注意事项
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46447573 1.HBase(NoSQL)的数据模型 1.1 表(table) 存 ...
- java数据结构系列之——数组(1)
import javax.management.RuntimeErrorException; public class MyArray { private long array[]; private ...