GestureListener控件
从Windows Phone 7开发31日谈开始到目前为止,你可能一直在想什么时候能找到在程序中处理用户手势的方法。就在今天!(免责声明:这是其中的“一种方法”。其实有很多种方法来处理手势,但无疑这是最简单的一种,如果你是一路读下来的就会发现这是这个系列所推崇的。用最简单的方法实现Windows Phone中的内容。但这未必是你要一直遵从的非常好的实践。)
好了,都说清楚了,我们来讨论GestureListener吧。和ContextMenu很像,我们要让GestureService知道我们创建了一个GestureListener,然后通常要为我们期待的特定手势配备事件处理程序。记住是在XAML元素中应用它,所以手势只会在被应用的控件中才能被识别。GestureListener支持以下手势:
Tap
DoubleTap
Hold
Flick
Pinch
Drag and Drop
每一个手势都是以这种方法实现的,实现起来非常简单。收缩和拖拽操作还有一些细节(通常Delta过程介于手势开始和完成之间)。下面是XAML代码(在另一个矩形中):
<Rectangle Width="100" Height="100" Fill="Blue">
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener
DoubleTap="DoubleTapped"
Tap="Tapped"
Hold="Held"
DragStarted="DragStart"
DragDelta="DragDelta"
DragCompleted="DragEnd"
Flick="Flicked"
PinchStarted="PinchStart"
PinchDelta="PinchDelta"
PinchCompleted="PinchEnd" />
</toolkit:GestureService.GestureListener>
</Rectangle>
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener
DoubleTap="DoubleTapped"
Tap="Tapped"
Hold="Held"
DragStarted="DragStart"
DragDelta="DragDelta"
DragCompleted="DragEnd"
Flick="Flicked"
PinchStarted="PinchStart"
PinchDelta="PinchDelta"
PinchCompleted="PinchEnd" />
</toolkit:GestureService.GestureListener>
</Rectangle>