private void ItemSwipeProgressInTouch(object sender, SwipeProgressEventArgs args) { Debug.WriteLine("Direction: " + args.SwipeDirection + " , Length: " + args.Cumulative + " , rate: " + args.CurrentRate); if (args.SwipeDirection == SwipeDirection.None) { return; } var panel = Getpanel(sender, args.SwipeDirection); SwipeMovePanel(panel, args); }
void SwipeMovePanel(StackPanel panel, SwipeProgressEventArgs args) { var cumlative = Math.Abs(args.Cumulative); if (panel == null && cumlative - panel.ActualWidth >= 0) { return; } if (args.CurrentRate < 0.3 && cumlative - panel.ActualWidth > 0) { (panel.RenderTransform as TranslateTransform).X += args.Delta / 2; } else if (args.CurrentRate >= 0.3 && args.CurrentRate < 0.4 && cumlative - panel.ActualWidth > 0) { (panel.RenderTransform as TranslateTransform).X += args.Delta * 2; } else { (panel.RenderTransform as TranslateTransform).X = args.SwipeDirection == SwipeDirection.Left ? cumlative - panel.ActualWidth : panel.ActualHeight - cumlative; } }