我和你们的情况一样,因为没有关于如何完成此操作的示例,但在仔细阅读和仔细研究了有关如何使用 C# 在 Windows 8 应用商店应用程序上实现滑动手势的 MSDN 文档后,这就是我想出了(它适用于我的应用程序,需要向上/向下/向左/向右滑动):
首先,需要使用 Manipulation 事件,而不是 GestureRecognizer,因此在您想要处理滑动的网格上(假设您使其占据整个屏幕,以便它解释手势)执行下列的:
我打电话给我的网格滑动表面我正在处理 Y 轴和 X 轴的操纵模式:
swipingSurface.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateY;
然后连接您想要通知的操作事件,在我的情况下,我只想知道操作何时开始以及何时结束:
swipingSurface.ManipulationStarted += OnManipulationStarted;
swipingSurface.ManipulationCompleted += OnManipulationCompleted;
在操作开始时做任何您想做的事情,例如如果您愿意的话获得初始点。但实际的技巧是在 ManipulationCompleted 事件上,您需要获取手势产生的速度,如下所示:
public void OnManipulationCompleted(object sender, ManipulationCompletedEventArgs e) {
var velocities = e.Velocities;
}
ManipulationCompletedEventArgs速度属性将带回类型的结构操纵速度,其中包含其他属性:
-Angular:以度/毫秒为单位的旋转速度。
-扩张:扩展或缩放速度,以每毫秒 DIP 为单位。
-Linear:直线速度,以每毫秒 DIP 为单位。
我实际上正在看Linear速度,这是一个Point包含指示执行手势的方向的 X 和 Y 值;例如,如果向上滑动,您会注意到 Y 值为正,如果向下滑动,则 Y 值为负; X 值也是如此,如果向左滑动,则 X 值为负,如果向右滑动,则 X 值为正,因此您可以使用这些值并检查您的滑动方向、最终点等。
希望这可以帮助。