与WPF相同Windows 8.1应用中也具有高级触控操作(Manipulation),其中包含了三种常见的触屏手势:平移、缩放、旋转,通过以下四种事件可为控件实现各种触控操作:ManipulationStarting、ManipulationStarted、ManipulationDelta、ManipulationInertiaStarting、ManipulationCompleted。

打开Visual Studio 2013 Preview,新建Windows Store应用。在XAML代码中添加Image控件,将ManipulationMode设置为ALL(也可按需要选择不同模式),并为其添加ManipulationStarting、ManipulationDelta、ManipulationCompleted事件,以便后续实现相关手势操作内容。RenderTransform中的CompositeTransform是一个控件变形组合,可容纳多种变形属性,如平移、旋转、缩放。

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">		
  <Canvas>
    <Image x:Name="imageElement" Source="images/cliff.jpg"
        Height="460" Width="758" Canvas.Left="300" Canvas.Top="150"
        ManipulationMode="All"
        ManipulationStarting="image_ManipulationStarting"
        ManipulationDelta="image_ManipulationDelta"
        ManipulationCompleted="image_ManipulationCompleted">
      <Image.RenderTransform>
        <CompositeTransform x:Name="imageCT"/>
      </Image.RenderTransform>
    </Image>
  </Canvas>
</Grid>

接下来,编写每个事件的具体内容,如下代码:

private void image_ManipulationStarting(object sender, ManipulationStartingRoutedEventArgs e)
{
  e.Handled = true;
} private void image_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
  FrameworkElement element = e.OriginalSource as FrameworkElement;
  element.Opacity = 0.5;
  imageCT.TranslateX += e.Delta.Translation.X;
  imageCT.TranslateY += e.Delta.Translation.Y;
  imageCT.ScaleX *= e.Delta.Scale;
  imageCT.ScaleY *= e.Delta.Scale;
  imageCT.Rotation += e.Delta.Rotation;
}

private void image_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
  FrameworkElement element = e.OriginalSource as FrameworkElement;
  element.Opacity = 1;
}

这些代码很好理解,当ManipulationDelta触发后,首先将控件透明度设置为0.5,然后捕捉触控操作并对TranslateX、TranslateY(平移);ScaleX、ScaleY(缩放)、Rotation(旋转)进行修改。最后ManipulationCompleted结束后将控件透明度恢复即可。按下F5键看看效果如何。

Windows 8.1 应用开发 – 触控操作的更多相关文章

  1. 与众不同 windows phone (25) - Input(输入)之捕获 UIElement 之外的触控操作, Silverlight 方式捕获手势操作, XNA 方式捕获手势操作, 多点触控

    原文:与众不同 windows phone (25) - Input(输入)之捕获 UIElement 之外的触控操作, Silverlight 方式捕获手势操作, XNA 方式捕获手势操作, 多点触 ...

  2. MSDN 杂志:UI 前沿技术 - WPF 中的多点触控操作事件

    原文  MSDN 杂志:UI 前沿技术 - WPF 中的多点触控操作事件 UI 前沿技术 WPF 中的多点触控操作事件 Charles Petzold 下载代码示例 就在过去几年,多点触控还只是科幻电 ...

  3. 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇04:如何实现触控操作》

    4.如何实现触控操作 触控操作概述: 随着APPLE.Samsung.SONY等众多公司,将掌机.电脑和手机等产品在触控领域的不断探索,以触控为操作的机型越来越多的被投放到市场当中.触控游戏.触控软件 ...

  4. 【转】Unity 之 移动设备的触控操作

    http://blog.csdn.net/anyuanlzh/article/details/18367941 这篇博文将简单的记录,如何用unity处理在移动设备上的触控操作.    iOS和And ...

  5. windows phone 8.1开发SQlite数据库操作详解

    原文出自:http://www.bcmeng.com/windows-phone-sqlite1/ 本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本 ...

  6. amazeUI tab禁止左右滑动(触控操作)

    参考:http://amazeui.clouddeep.cn/javascript/tabs/ 效果: html: <!DOCTYPE html> <html> <hea ...

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

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

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

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

  9. Windows Phone 8.1开发:触控和指针事件2

    原文出自:http://www.bcmeng.com/windows-phone-touch1/ 请在此输入内容(想死啊,写了一个小时,直接没保存不小心删掉了.那就简单说说吧)Pointer事件有以下 ...

随机推荐

  1. 搭建Maven私服

    最近从SVN下载的代码,在本地构建时出现了诸多问题,部分依赖下载超时,就想起在局域网搭建Maven私服,废话不说了,在测试服务器上建的已经成功,就随便找台机子再练习一遍顺道写个日志.1.前往http: ...

  2. Java 引用

    Java 对象的引用方式有如下四种,这四种方式主要是为了给垃圾回收提供更灵活的操作: 1.强引用,最常见的引用方式,当一个对象被一个或一个以上的引用变量引用时,它处于可达状态,这时不会被垃圾回收器回收 ...

  3. Charles中如何对https抓包

    前言:下面介绍关于Charles中如何对https抓包 1.在默认没有相关设置HTTPS需要设置相关操作的时候,会出现下面的情况: 2.下面就是设置SSL Proxying,然后443是默可用的端口 ...

  4. BIEE使用技巧

    索引: 1.如何清除缓存 2.通过“编辑 SQL”取得前一天的日期 3.格式化日历框参数 4.根据传入的开始时间和结束时间取得事实表中的指标(用到了3中的技巧) 5.直接调用数据库函数 6.时间格式转 ...

  5. [转载]DBA的特质第二部分:性格

    本文转自http://www.searchdatabase.com.cn/showcontent_84382.htm 支持原创.尊重原创,分享知识! 在本系列文章中,笔者将谈一谈数据库管理员(DBA) ...

  6. 学C#你应该熟练使用ILDasm和Reflector【带视频教程】

    我们在学习C#的时候通常都会多多少少接触ILDasm和Reflector,这两样工具让我们对C#的理解不会只停留在编译器这个层面 上,而是让我们更深入的穿透编译器.这篇也是希望对IL和Reflecto ...

  7. JSP连接数据库

    1.将c3p0-0.9.5.2.jar/mchange-commons-java-0.2.11.jar/ojdbc6.jar三个包放在WEB-INF的lib文件夹下,将web.xml文件放到WEB-I ...

  8. (1)编写一个接口ShapePara,要求: 接口中的方法: int getArea():获得图形的面积。int getCircumference():获得图形的周长 (2)编写一个圆类Circle,要求:圆类Circle实现接口ShapePara。 该类包含有成员变量: radius:public 修饰的double类型radius,表示圆的半径。 x:private修饰的double型变量x,

    package com.hanqi.test; //创建接口 public interface ShapePara { //获取面积的方法 double getArea(); //获取周长的方法 do ...

  9. [转]Zabbix 3.0 安装笔记

    Zabbix 3.0 只支持CentOS 7.0以上版本,所以先在虚拟机中安装好CentOS 7.0 x64,并设置好IP,允许虚拟机联网. 1.安装MySQL 从最新版本的linux系统开始,默认的 ...

  10. python class对象转换成json/字典

    # -*- encoding: UTF-8 -*- class Student: name = '' age = 0 def __init__(self, name, age): self.name ...