上篇文章介绍了Silverlight for Windows Phone中的高级触控编程接口,本文将讲解Silverlight for Windows Phone Toolkit中的GestureListener对象。有了上篇文章的铺垫,再来看GestureListener的相关操作就很容易了。

一.Silverlight for Windows Phone Toolkit

    Silverlight for Windows Phone Toolkit为Windows Phone提供了很多方便易用的控件,我们可以通过上面的地址下载后进行安装,下面是安装过程的截图:

Windows Phone 7 开发探索笔记3——触控操作之GestureListenerWindows Phone 7 开发探索笔记3——触控操作之GestureListener

装好后,需要在项目中添加程序集的引用,如下图:

Windows Phone 7 开发探索笔记3——触控操作之GestureListener

然后在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和效果图:

Windows Phone 7 开发探索笔记3——触控操作之GestureListener Windows Phone 7 开发探索笔记3——触控操作之GestureListener

我对这个矩形添加了以下手势的监听:

<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>

相关文章: