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; }
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; }
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; }
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); }
/// <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(); } } }
private void OnGestureListenerPinchCompleted(object sender, PinchGestureEventArgs args) { if (_isPinching) { TransferTransforms(); _isPinching = false; } }
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) { }
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; } } }
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); }
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(); }
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; }
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 }
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; } }
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; }
/// <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; }
private void ListenerPinchDelta(object sender, PinchGestureEventArgs e) { Invoke(e); }
/// <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; }