Windows Phone 7 开发探索笔记3——触控操作之GestureListener
上篇文章介绍了Silverlight for Windows Phone中的高级触控编程接口,本文将讲解Silverlight for Windows Phone Toolkit中的GestureListener对象。有了上篇文章的铺垫,再来看GestureListener的相关操作就很容易了。
一.Silverlight for Windows Phone Toolkit
Silverlight for Windows Phone Toolkit为Windows Phone提供了很多方便易用的控件,我们可以通过上面的地址下载后进行安装,下面是安装过程的截图:
装好后,需要在项目中添加程序集的引用,如下图:
然后在Code-Behind文件中添加相应的名称空间:
using Microsoft.Phone.Controls;
在XAML代码中添加xmlns:
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
二.使用GestureListener
注意GestureListener是在XAML元素上应用的,所以要使用GestureListener,首先要在那个元素中添加<GestureService.GestureListener>对象,然后再为我们要监听的手势添加事件处理程序。由于是在XAML元素中应用,所以手势只有在被应用到的那个元素中才能被识别。GestureListener支持以下手势:
- Tap
- DoubleTap
- Hold
- Flick
- Pinch
- Drag and Drop
我使用了上篇文章中那个程序的UI,来看一下程序的Logic Tree和效果图:
我对这个矩形添加了以下手势的监听:
代码
<Rectangle x:Name="rectangle" Width="200" Height="200"
Fill="Blue" Stroke="Red" StrokeThickness="5">
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener Tap="GestureListener_Tap"
DoubleTap="GestureListener_DoubleTap"
Flick="GestureListener_Flick"
Hold="GestureListener_Hold"
GestureBegin="GestureListener_GestureBegin"
GestureCompleted="GestureListener_GestureCompleted"
DragStarted="GestureListener_DragStarted"
DragDelta="GestureListener_DragDelta"
DragCompleted="GestureListener_DragCompleted"/>
</toolkit:GestureService.GestureListener>
<Rectangle.RenderTransform>
<TranslateTransform x:Name="translation"/>
</Rectangle.RenderTransform>
</Rectangle>
Fill="Blue" Stroke="Red" StrokeThickness="5">
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener Tap="GestureListener_Tap"
DoubleTap="GestureListener_DoubleTap"
Flick="GestureListener_Flick"
Hold="GestureListener_Hold"
GestureBegin="GestureListener_GestureBegin"
GestureCompleted="GestureListener_GestureCompleted"
DragStarted="GestureListener_DragStarted"
DragDelta="GestureListener_DragDelta"
DragCompleted="GestureListener_DragCompleted"/>
</toolkit:GestureService.GestureListener>
<Rectangle.RenderTransform>
<TranslateTransform x:Name="translation"/>
</Rectangle.RenderTransform>
</Rectangle>
在Code-Behind文件中的事件处理程序如下:
- 更多wap疑问解答:
- 新人求助QPainter
- 为什么程序都退出了还可以收到推送?如果大多设备都可以推送那运营商怎么办?
- qt 4.7 sqlserver2000 存储过程调用
- 关于ANDROID4.0.1编译问题!
- Android FrameBuffer读屏幕30秒后mmap失败
- 联通粗定位用java程序如何来请求和接受数据
- 为什么QT运行Android平台的程序时,mouseMoveEvent事件响应的间隔时间很长??????????
- android与PC蓝牙通讯
- 指定大小的label 内容可变,如果内容超出label的宽度,将未能显示的部分显示在另一个label上
- Android调试
- android如何通过wifi连接无线打印机
- 运行程序,release目录下产生一个乱码文件夹
- 分享个某机构最新安卓资料,自己验证了
- service启动不起来,掉不了service connection
- 求助:QT5.0 没有QPrinter吗