private void OnGestureCompleted(object sender, GestureEventArgs e) { if (_isDragging) { var args = new DragCompletedGestureEventArgs( new Point(0.0, 0.0), new Point(0.0, 0.0), new Point(0.0, 0.0), Orientation.Vertical, new Point(0.0, 0.0)); if (_lastDragDeltaEventArgs != null) { args = new DragCompletedGestureEventArgs( new Point(0.0, 0.0), new Point(0.0, 0.0), new Point(_lastDragDeltaEventArgs.HorizontalChange, _lastDragDeltaEventArgs.VerticalChange), _lastDragDeltaEventArgs.Direction, new Point(0.0, 0.0)); } _isDragging = false; OnDragCompleted(sender, args); } }
private void OnTap(object sender, GestureEventArgs e) { if (!IsEnabled) { return; } RaiseTap(e); }
protected virtual void RaiseTap(GestureEventArgs e) { var handler = Tap; if (handler != null) { handler(this, e); } }
private void OnDoubleTap(object sender, GestureEventArgs e) { if (!IsEnabled) { return; } if (!CanZoom) { return; } if (CurrentScaleX > 1.0 || CurrentScaleY > 1.0) { var frameworkElement = sender as FrameworkElement; var transform = frameworkElement.RenderTransform as CompositeTransform; AnimateTransform(transform, 0.0, 0.0, 1.0, 1.0); CurrentScaleX = 1.0; CurrentScaleY = 1.0; } else { var frameworkElement = sender as FrameworkElement; var transform = frameworkElement.RenderTransform as CompositeTransform; var a = transform.Transform(e.GetPosition(frameworkElement)); // we need the points to be relative to the current transform var b = transform.Transform(e.GetPosition(frameworkElement)); var scale = new CompositeTransform { CenterX = (a.X + b.X) / 2, CenterY = (a.Y + b.Y) / 2, ScaleX = 4.0, ScaleY = 4.0 }; ConstrainToParentBounds(frameworkElement, scale); var newTransform = ComposeScaleTranslate(transform, scale); AnimateTransform(transform, newTransform.TranslateX, newTransform.TranslateY, newTransform.ScaleX, newTransform.ScaleY); _old.CenterX = newTransform.CenterX; _old.CenterY = newTransform.CenterY; _old.TranslateX = newTransform.TranslateX; _old.TranslateY = newTransform.TranslateY; _old.ScaleX = newTransform.ScaleX; _old.ScaleY = newTransform.ScaleY; CurrentScaleX = _old.ScaleX; CurrentScaleY = _old.ScaleY; } RaiseDoubleTap(e); }
private void PanAndZoom_OnTap(object sender, GestureEventArgs e) { if (_handled) { _handled = false; return; } if (ApplicationBar != null) { ApplicationBar.IsVisible = !ApplicationBar.IsVisible; } var animation = ApplicationPanel.Visibility == Visibility.Visible ? CloseApplicationPanelAnimation : OpenApplicationPanelAnimation; animation.Begin(); }
private void PanAndZoom_OnDoubleTap(object sender, GestureEventArgs e) { _tapHandled = true; }