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); } }
protected virtual void RaiseClose(DragCompletedGestureEventArgs e) { var handler = Close; if (handler != null) { handler(this, e); } }
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; }
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; }