private void gesture_PinchDelta(object sender, PinchGestureEventArgs e)
 {
     var point = e.GetPosition(ContentPanel, 0);
     var point2 = e.GetPosition(ContentPanel, 1);
     message.Text = string.Format("pinch delta at ({0},{1}) and ({1},{2}) with angle delta {3} and distance ratio {4}",
         point.X, point.Y, point2.X, point2.Y, e.TotalAngleDelta, e.DistanceRatio);
 }
        private void OnPinchDelta(object sender, PinchGestureEventArgs e)
        {
            var image = (Image) sender;
            if (actualWidth == 0)
                actualWidth = image.Width;
            if (actualHeight == 0)
                actualHeight = image.Height;

            var renderTransform = (CompositeTransform) image.RenderTransform;
            if (e.DistanceRatio > 1)
            {
                var distanceRatio = (int) e.DistanceRatio;
                double d = e.DistanceRatio - distanceRatio;
                renderTransform.ScaleX = Math.Min(renderTransform.ScaleX + d, 2);
                renderTransform.ScaleY = Math.Min(renderTransform.ScaleY + d, 2);
            }
            else
            {
                renderTransform.ScaleX = Math.Max(renderTransform.ScaleX - (1 - e.DistanceRatio), 1);
                renderTransform.ScaleY = Math.Max(renderTransform.ScaleY - (1 - e.DistanceRatio), 1);
                if (Math.Abs(renderTransform.ScaleX) == 1)
                {
                    image.Width = actualWidth;
                    image.Height = actualHeight;
                }
            }
            image.Width = image.ActualWidth*renderTransform.ScaleX;
            image.Height = image.ActualHeight*renderTransform.ScaleY;
        }
Example #3
0
 private void OnPinchDelta(object sender, PinchGestureEventArgs e)
 {
     if (initialScale * e.DistanceRatio < 1.7 && initialScale * e.DistanceRatio > 0.5)
     {
         transform.ScaleX = initialScale * e.DistanceRatio;
         transform.ScaleY = initialScale * e.DistanceRatio;
     }
 }
        private void OnPinchDelta(object sender, PinchGestureEventArgs e)
        {
            var finger1 = e.GetPosition(ImgZoom, 0);
            var finger2 = e.GetPosition(ImgZoom, 1);

            var center = new Point(
                (finger2.X + finger1.X) / 2 / ImgZoom.ActualWidth,
                (finger2.Y + finger1.Y) / 2 / ImgZoom.ActualHeight);

            ImgZoom.RenderTransformOrigin = center;

            var transform = (CompositeTransform)ImgZoom.RenderTransform;
            transform.ScaleX = initialScale * e.DistanceRatio;
            transform.ScaleY = transform.ScaleX;
        }
Example #5
0
        private void OnGestureListenerPinchDelta(object sender, PinchGestureEventArgs args)
        {
            if (_isPinching)
            {
                // Set scaling
                scaleTransform.ScaleX = args.DistanceRatio;
                scaleTransform.ScaleY = args.DistanceRatio;
                rotateTransform.Angle = args.TotalAngleDelta;

                // Set translation
                Point ptPinchPosition = args.GetPosition(this);
                translateTransform.X = ptPinchPosition.X - _ptPinchPositionStart.X;
                translateTransform.Y = ptPinchPosition.Y - _ptPinchPositionStart.Y;
            }
        }
        private void OnPinchDelta(object sender, PinchGestureEventArgs e)
        {
            Image i = sender as Image;
            CompositeTransform transform = i.RenderTransform as CompositeTransform;

            transform.ScaleX = _initialScale * e.DistanceRatio;
            transform.ScaleY = _initialScale * e.DistanceRatio;

            if (transform.ScaleX > 1d)
                _isZoomed = true;
            else if (i.ActualWidth < 1d)
                //zoom out the whole set of images
                _isZoomed = true;
            else
                _isZoomed = false;
        }
Example #7
0
        private void OnPinchDelta(object s, PinchGestureEventArgs e)
        {
            var scaleFactor = e.DistanceRatio / _oldScaleFactor;

            var currentFinger1 = e.GetPosition(bigPicture, 0);
            var currentFinger2 = e.GetPosition(bigPicture, 1);

            var translationDelta = GetTranslationDelta(
                currentFinger1,
                currentFinger2,
                _oldFinger1,
                _oldFinger2,
                ImagePosition,
                scaleFactor);

            _oldFinger1 = currentFinger1;
            _oldFinger2 = currentFinger2;
            _oldScaleFactor = e.DistanceRatio;

            UpdateImage(scaleFactor, translationDelta);
        }
Example #8
0
        /// <summary>
        /// Computes the scaling and translation to correctly zoom around your fingers.
        /// </summary>
        private void OnPinchDelta(object sender, PinchGestureEventArgs e)
        {
            var scaleFactor = e.DistanceRatio / _oldScaleFactor;
            if (!IsScaleValid(scaleFactor))
                return;

            var currentFinger1 = e.GetPosition(ImgZoom, 0);
            var currentFinger2 = e.GetPosition(ImgZoom, 1);

            var translationDelta = GetTranslationDelta(
                currentFinger1,
                currentFinger2,
                _oldFinger1,
                _oldFinger2,
                ImagePosition,
                scaleFactor);

            _oldFinger1 = currentFinger1;
            _oldFinger2 = currentFinger2;
            _oldScaleFactor = e.DistanceRatio;

            UpdateImageScale(scaleFactor);
            UpdateImagePosition(translationDelta);
        }
        void OnLayoutPinchDelta(object sender, PinchGestureEventArgs e)
        {
            if (_measurePinch)
            {
                double scale = Math.Min(1.0, e.DistanceRatio);
                scale = Math.Max(0.5, scale);

                var transform = PageViewPanel.RenderTransform as CompositeTransform;

                transform.ScaleX = scale;
                transform.ScaleY = scale;
            }
        }
        void OnLayoutPinchCompleted(object sender, PinchGestureEventArgs e)
        {
            if (this._measurePinch)
            {
                this._measurePinch = false;
                PageManager.IgnoreInteractions = false;

                if (e.DistanceRatio < 0.5)
                    ShowPostJumpList(this, null);

                else
                {
                    var transform = PageViewPanel.RenderTransform as CompositeTransform;
                    double startX = transform.ScaleX;
                    double startY = transform.ScaleY;
                    double endX = 1.0;
                    double endY = 1.0;

                    DoubleAnimation scaleX = new DoubleAnimation() { From = startX, To = endX, Duration = TimeSpan.FromMilliseconds(250), FillBehavior = FillBehavior.HoldEnd };
                    DoubleAnimation scaleY = new DoubleAnimation() { From = startY, To = endY, Duration = TimeSpan.FromMilliseconds(250), FillBehavior = FillBehavior.HoldEnd };

                    Storyboard scale = new Storyboard();
                    Storyboard.SetTarget(scaleX, transform);
                    Storyboard.SetTargetProperty(scaleX, new PropertyPath("ScaleX"));
                    Storyboard.SetTarget(scaleY, transform);
                    Storyboard.SetTargetProperty(scaleY, new PropertyPath("ScaleY"));
                    scale.Children.Add(scaleX);
                    scale.Children.Add(scaleY);
                    scale.Begin();
                }
            }
        }
Example #11
0
 private void OnGestureListenerPinchCompleted(object sender, PinchGestureEventArgs args)
 {
     if (_isPinching)
     {
         TransferTransforms();
         _isPinching = false;
     }
 }
Example #12
0
        private void OnPinchDelta(object sender, PinchGestureEventArgs e)
        {
            if (isAnimating)
                return; 

            var scaleFactor = e.DistanceRatio / oldScaleFactor;
            if (!IsScaleValid(scaleFactor))
                return;

            var currentFinger1 = e.GetPosition(_content, 0);
            var currentFinger2 = e.GetPosition(_content, 1);

            var translationDelta = GetTranslationDelta(currentFinger1, currentFinger2, scaleFactor);

            oldFinger1 = currentFinger1;
            oldFinger2 = currentFinger2;
            oldScaleFactor = e.DistanceRatio;

            UpdateScale(scaleFactor);
            UpdatePosition(translationDelta);

            e.Handled = true; 
        }
 private void OnPinchDelta(object sender, PinchGestureEventArgs e)
 {
     transform.Rotation = initialAngle + e.TotalAngleDelta;
     transform.ScaleX = initialScale * e.DistanceRatio;
     transform.ScaleY = initialScale * e.DistanceRatio;
 }
 private void GestureListener_PinchCompleted(object sender, PinchGestureEventArgs e)
 {
 }
Example #15
0
        private void ScrollViewer_PinchCompleted(object sender, PinchGestureEventArgs e)
        {
            double angleDelta = e.TotalAngleDelta;

            if (angleDelta > 75)
            {
                if (this.Orientation == PageOrientation.PortraitUp)
                {
                    this.SupportedOrientations = SupportedPageOrientation.Landscape;
                    this.Orientation = PageOrientation.LandscapeLeft;
                }
                else if (this.Orientation == PageOrientation.LandscapeRight)
                {
                    this.SupportedOrientations = SupportedPageOrientation.Portrait;
                    this.Orientation = PageOrientation.Portrait;
                }
            }
            else if (angleDelta < -75)
            {
                if (this.Orientation == PageOrientation.PortraitUp)
                {
                    this.SupportedOrientations = SupportedPageOrientation.Landscape;
                    this.Orientation = PageOrientation.LandscapeRight;
                }
                else if (this.Orientation == PageOrientation.LandscapeLeft)
                {
                    this.SupportedOrientations = SupportedPageOrientation.Portrait;
                    this.Orientation = PageOrientation.Portrait;
                }
            }
        }
Example #16
0
        private void gestureListener_PinchDelta(object sender, PinchGestureEventArgs e)
        {
            if (imageMan == null)
                return;

            Interlocked.CompareExchange(ref zooming, 1, 0);
            var scaleFactor = e.DistanceRatio / _oldScaleFactor;
            if (!IsScaleValid(scaleFactor))
                return;

            var currentFinger1 = e.GetPosition(image, 0);
            var currentFinger2 = e.GetPosition(image, 1);

            var translationDelta = GetTranslationDelta(
                currentFinger1,
                currentFinger2,
                _oldFinger1,
                _oldFinger2,
                ImagePosition,
                scaleFactor);

            _oldFinger1 = currentFinger1;
            _oldFinger2 = currentFinger2;
            _oldScaleFactor = e.DistanceRatio;

            UpdateImageScale(scaleFactor);
            UpdateImagePosition(translationDelta);
        }
Example #17
0
        private void gestureListener_PinchCompleted(object sender, PinchGestureEventArgs e)
        {
            if (imageMan == null)
                return;

            zoomed = true;
            Interlocked.Exchange(ref zooming, 0);
        }
 /// <summary>
 /// Pinch completed
 /// </summary>
 /// <param name="sender">Event sender</param>
 /// <param name="e">Event parameter</param>
 void GestureListener_PinchCompleted(
         object sender,
         PinchGestureEventArgs e)
 {
   AlignPhoto();
 }
Example #19
0
 private void OnPinchCompleted(object sender, PinchGestureEventArgs e)
 {
     border.Background = normalBrush;
 }
 /// <summary>
 /// 手势操作过程中
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnPinchDelta(object sender, PinchGestureEventArgs e)
 {
     var point = e.GetPosition(this);
     _imgTrans.ScaleX = _initialScale * e.DistanceRatio;
     _imgTrans.ScaleY = _initialScale * e.DistanceRatio;
 }
Example #21
0
        private void ListPinch_PinchCompleted_1(object sender, PinchGestureEventArgs e)
        {
            //MessageBox.Show("Pinch COMPLETED");
            ContactList.LayoutMode = LongListSelectorLayoutMode.Grid;
            ContactList.GridCellSize = new Size(150, 150);
            ContactList.ItemTemplate = ContactListGrid;

            // Uses Headers or not
        }
Example #22
0
 private void OnPinchDelta(object sender, PinchGestureEventArgs e)
 {
 }
 private void OnGestureListenerPinchCompleted(object sender, PinchGestureEventArgs args)
 {
     if (this.transform.ScaleX < 1.0)
     {
         this.transform.ScaleX = this.transform.ScaleY = 1.0;
         this.transform.TranslateX = this.transform.TranslateY = 0.0;
     }
 }
Example #24
0
        private void OnPinchDelta(object sender, PinchGestureEventArgs e)
        {
            // If its less that the original  size or more than 4x then don’t apply
            if (InitialScale * e.DistanceRatio > 4 || (InitialScale != 1 && e.DistanceRatio == 1) || InitialScale * e.DistanceRatio < 1)
                return;

            // If its original size then center it back
            if (e.DistanceRatio <= 1.08)
            {
                ResetImageTransformation();
            }

            ImageTransformation.CenterX = Center.X;
            ImageTransformation.CenterY = Center.Y;

            // Update the rotation and scaling
            if (this.Orientation == PageOrientation.Landscape)
            {
                // When in landscape we need to zoom faster, if not it looks choppy
                ImageTransformation.ScaleX = InitialScale * (1 + (e.DistanceRatio - 1) * 2);
            }
            else
            {
                ImageTransformation.ScaleX = InitialScale * e.DistanceRatio;
            }
            ImageTransformation.ScaleY = ImageTransformation.ScaleX;
        }
        private void OnPinchDelta(object sender, PinchGestureEventArgs e)
        {
            // if its less that the original  size or more than 4x then does not apply
            if (initialScale * e.DistanceRatio > 4 ||
                (Math.Abs(initialScale - 1) > 0.01 && Math.Abs(e.DistanceRatio - 1) < 0.01) ||
                initialScale * e.DistanceRatio < 1)
                return;

            // if its original size then center it back
            if (e.DistanceRatio <= 1.08)
            {
                ImageTransformation.CenterY = 0;
                ImageTransformation.CenterY = 0;
                ImageTransformation.TranslateX = 0;
                ImageTransformation.TranslateY = 0;
            }

            var scaleFactor = e.DistanceRatio / _oldScaleFactor;

            var currentFinger1 = e.GetPosition(DetailImage, 0);
            var currentFinger2 = e.GetPosition(DetailImage, 1);

            var translationDelta = GetTranslationDelta(
                currentFinger1,
                currentFinger2,
                _oldFinger1,
                _oldFinger2,
                ImagePosition,
                scaleFactor);

            _oldFinger1 = currentFinger1;
            _oldFinger2 = currentFinger2;
            _oldScaleFactor = e.DistanceRatio;

            UpdateImage(scaleFactor, translationDelta);

            ImageTransformation.CenterX = center.X;
            ImageTransformation.CenterY = center.Y;

            //// update the rotation and scaling
            //if (Orientation == PageOrientation.Landscape)
            //{
            //    // when in landscape we need to zoom faster, if not it looks choppy
            //    ImageTransformation.ScaleX = initialScale * (1 + (e.DistanceRatio - 1) * 2);
            //}
            //else
            //{
            //    ImageTransformation.ScaleX = initialScale * e.DistanceRatio;
            //}
            //ImageTransformation.ScaleY = ImageTransformation.ScaleX;
        }
Example #26
0
 /// <summary>
 /// Déclenché lorsque l'utilisateur retire ses deux doigts de l'image
 /// </summary>
 /// <param name="sender">Image sélectionnée par l'utilisateur</param>
 /// <param name="e"></param>
 private void GestureListener_OnPinchCompleted(object sender, PinchGestureEventArgs e)
 {
     _transform = null;
 }
Example #27
0
 private void ListenerPinchDelta(object sender, PinchGestureEventArgs e)
 {
     Invoke(e);
 }
Example #28
0
        /// <summary>
        /// Déclenché lorsque l'utilisateur bouge ses deux doigts sur l'écran afin de zoomer ou rotater une image
        /// </summary>
        /// <param name="sender">Image sélectionnée par l'utilisateur</param>
        /// <param name="e"></param>
        private void GestureListener_OnPinchDelta(object sender, PinchGestureEventArgs e)
        {
            // Rotation
            _transform.Rotation = _initialAngle + e.TotalAngleDelta;

            // Zoom
            double newScale = _initialScale * e.DistanceRatio;
            _transform.ScaleX = _transform.ScaleY = newScale > 0.5 ? newScale : 0.5;
        }
 private void OnGestureListenerPinchDelta(object sender, PinchGestureEventArgs args)
 {
     this.transform.ScaleY = this.transform.ScaleX = this.initialScale * args.DistanceRatio;
     if (this.transform.ScaleX > 1.0)
     {
         this.transform.TranslateX = this.ComputeTranslateX(this.transform.TranslateX, this.transform.ScaleX);
         this.transform.TranslateY = this.ComputeTranslateY(this.transform.TranslateY, this.transform.ScaleY);
     }
 }
 private void OnPinchDelta(object sender, PinchGestureEventArgs e)
 {
     MyMustacheTransformation.Rotation = _initialAngle + e.TotalAngleDelta;
     MyMustacheTransformation.ScaleX = _initialScale * e.DistanceRatio;
     MyMustacheTransformation.ScaleY = MyMustacheTransformation.ScaleX;
 }