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
        protected virtual void RaiseClose(DragCompletedGestureEventArgs e)
        {
            var handler = Close;

            if (handler != null)
            {
                handler(this, e);
            }
        }
Ejemplo n.º 3
0
        private void OnDragCompleted(object sender, DragCompletedGestureEventArgs e)
        {
            if (!IsEnabled)
            {
                return;
            }

            //if (CurrentScaleX != 1.0)
            //{
            //    return;
            //}

            //var frameworkElement = sender as FrameworkElement;
            //var transform = frameworkElement.RenderTransform as CompositeTransform;

            //if (DebugText != null)
            //{
            //    DebugText.Text = string.Format("DragCompleted TranslateX={0} TranslateY={1}", transform.TranslateX, transform.TranslateY);
            //}

            //if (_direction == Orientation.Vertical)
            //{
            //    if (Math.Abs(transform.TranslateY) > 100)
            //    {
            //        RaiseClose(e);
            //        return;
            //    }
            //    else
            //    {
            //        var storyboard = new Storyboard();

            //        var translateAnimation = new DoubleAnimationUsingKeyFrames();
            //        translateAnimation.KeyFrames.Add(new EasingDoubleKeyFrame { KeyTime = TimeSpan.FromSeconds(0.25), Value = 0.0, EasingFunction = new ExponentialEase { EasingMode = EasingMode.EaseOut, Exponent = 6.0 } });
            //        Storyboard.SetTarget(translateAnimation, frameworkElement);
            //        Storyboard.SetTargetProperty(translateAnimation, new PropertyPath("(UIElement.RenderTransform).(CompositeTransform.TranslateY)"));
            //        storyboard.Children.Add(translateAnimation);

            //        storyboard.Begin();

            //        if (BackgroundPanel != null)
            //        {
            //            BackgroundPanel.Opacity = 1.0;
            //            //BackgroundPanel.Background = new SolidColorBrush(Colors.Black);
            //        }
            //    }
            //}
            //else if (_direction == Orientation.Horizontal && Math.Abs(transform.TranslateX) < 150)
            //{
            //    var storyboard = new Storyboard();

            //    var translateAnimation = new DoubleAnimationUsingKeyFrames();
            //    translateAnimation.KeyFrames.Add(new EasingDoubleKeyFrame { KeyTime = TimeSpan.FromSeconds(0.15), Value = 0.0, EasingFunction = new ExponentialEase { EasingMode = EasingMode.EaseOut, Exponent = 6.0 } });
            //    Storyboard.SetTarget(translateAnimation, img);
            //    Storyboard.SetTargetProperty(translateAnimation, new PropertyPath("(UIElement.RenderTransform).(CompositeTransform.TranslateX)"));
            //    storyboard.Children.Add(translateAnimation);

            //    storyboard.Begin();
            //}


            _direction = null;
        }
Ejemplo n.º 4
0
        private void OnDragCompleted(object sender, DragCompletedGestureEventArgs e)
        {
            //System.Diagnostics.Debug.WriteLine("OnDragCompleted IsEnabled=" + IsEnabled + " horizontal_change=" + e.HorizontalChange + " vertical_change=" + e.VerticalChange + " direction=" + e.Direction + " horizontal_velocity=" + e.HorizontalVelocity + " vertical_velocity=" + e.VerticalVelocity);
            _isDragging = false;

            if (!IsEnabled)
            {
                return;
            }

            if (CurrentScaleX != 1.0)
            {
                return;
            }

            var frameworkElement = sender as FrameworkElement;
            var transform        = frameworkElement.RenderTransform as CompositeTransform;

            if (DebugText != null)
            {
                DebugText.Text = string.Format("DragCompleted TranslateX={0} TranslateY={1}", transform.TranslateX, transform.TranslateY);
            }

            if (_direction == Orientation.Vertical)
            {
                if (SuppressDrag)
                {
                    return;
                }
                if (Math.Abs(transform.TranslateY) > 100)
                {
                    RaiseClose(new PanAndZoomCloseEventArgs {
                        VerticalChange = e.VerticalChange
                    });
                    return;
                }
                else
                {
                    var storyboard = new Storyboard();

                    var translateAnimation = new DoubleAnimationUsingKeyFrames();
                    translateAnimation.KeyFrames.Add(new EasingDoubleKeyFrame {
                        KeyTime = TimeSpan.FromSeconds(0.25), Value = 0.0, EasingFunction = new ExponentialEase {
                            EasingMode = EasingMode.EaseOut, Exponent = 6.0
                        }
                    });
                    Storyboard.SetTarget(translateAnimation, frameworkElement);
                    Storyboard.SetTargetProperty(translateAnimation, new PropertyPath("(UIElement.RenderTransform).(CompositeTransform.TranslateY)"));
                    storyboard.Children.Add(translateAnimation);

                    storyboard.Begin();

                    if (BackgroundPanel != null)
                    {
                        BackgroundPanel.Opacity = 1.0;
                        //BackgroundPanel.Background = new SolidColorBrush(Colors.Black);
                    }
                }
            }
            //else if (_direction == Orientation.Horizontal && Math.Abs(transform.TranslateX) < 150)
            //{
            //    var storyboard = new Storyboard();

            //    var translateAnimation = new DoubleAnimationUsingKeyFrames();
            //    translateAnimation.KeyFrames.Add(new EasingDoubleKeyFrame { KeyTime = TimeSpan.FromSeconds(0.15), Value = 0.0, EasingFunction = new ExponentialEase { EasingMode = EasingMode.EaseOut, Exponent = 6.0 } });
            //    Storyboard.SetTarget(translateAnimation, img);
            //    Storyboard.SetTargetProperty(translateAnimation, new PropertyPath("(UIElement.RenderTransform).(CompositeTransform.TranslateX)"));
            //    storyboard.Children.Add(translateAnimation);

            //    storyboard.Begin();
            //}


            _direction = null;
        }