Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        private void OnTap(object sender, GestureEventArgs e)
        {
            if (!IsEnabled)
            {
                return;
            }

            RaiseTap(e);
        }
Ejemplo n.º 3
0
        protected virtual void RaiseTap(GestureEventArgs e)
        {
            var handler = Tap;

            if (handler != null)
            {
                handler(this, e);
            }
        }
Ejemplo n.º 4
0
        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;
 }