private void RaiseDragEvents(InputDeltaArgs args) { DragEventArgs e = new DragEventArgs(args); if (args.DeltaTranslation.X != 0 && _dragLock == DragLock.Horizontal) { RaiseHorizontalDrag(e); } else if (args.DeltaTranslation.Y != 0 && _dragLock == DragLock.Vertical) { RaiseVerticalDrag(e); } }
protected void NotifyUp(InputCompletedArgs args) { EventArgs e = EventArgs.Empty; _dragLock = DragLock.Unset; _dragging = false; if (args.IsInertial) { double angle = GestureHelper.AngleFromVector(args.FinalLinearVelocity.X, args.FinalLinearVelocity.Y); if (angle <= 45 || angle >= 315) { angle = 0; } else if (angle >= 135 && angle <= 225) { angle = 180; } FlickEventArgs flickEventArgs = new FlickEventArgs { Angle = angle }; ReleaseMouseCaptureAtGestureOrigin(); RaiseFlick(flickEventArgs); } else if (args.TotalTranslation.X != 0 || args.TotalTranslation.Y != 0) { DragEventArgs dragEventArgs = new DragEventArgs { CumulativeDistance = args.TotalTranslation }; dragEventArgs.MarkAsFinalTouchManipulation(); e = dragEventArgs; } RaiseGestureEnd(e); }
private void RaiseVerticalDrag(DragEventArgs args) { SafeRaise.Raise <DragEventArgs>(VerticalDrag, this, args); }
private void RaiseHorizontalDrag(DragEventArgs args) { SafeRaise.Raise <DragEventArgs>(HorizontalDrag, this, args); }