Example #1
0
    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);
        }
    }
Example #2
0
    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);
    }
Example #3
0
 private void RaiseVerticalDrag(DragEventArgs args)
 {
     SafeRaise.Raise <DragEventArgs>(VerticalDrag, this, args);
 }
Example #4
0
 private void RaiseHorizontalDrag(DragEventArgs args)
 {
     SafeRaise.Raise <DragEventArgs>(HorizontalDrag, this, args);
 }