void _adornerLayer_StylusUp(object sender, StylusEventArgs e) { Debug.WriteLine(_adorner.AdornerDropState.ToString()); switch (_adorner.AdornerDropState) { case DropState.CanDrop: try { ((Storyboard)_adorner.Resources["canDrop"]).Completed += (s, args) => { _adornerLayer.Children.Clear(); _adornerLayer.Visibility = Visibility.Collapsed; }; ((Storyboard)_adorner.Resources["canDrop"]).Begin(_adorner); // Added position in drop target Point pos = e.GetPosition((IInputElement)_dropTarget); if (ItemDropped != null) ItemDropped(_adorner, new DragDropEventArgs(_draggedData, pos, _dropTarget)); } catch (Exception) { } break; case DropState.CannotDrop: try { Storyboard sb = _adorner.Resources["cannotDrop"] as Storyboard; DoubleAnimation aniX = sb.Children[0] as DoubleAnimation; aniX.To = _delta.X; DoubleAnimation aniY = sb.Children[1] as DoubleAnimation; aniY.To = _delta.Y; sb.Completed += (s, args) => { _adornerLayer.Children.Clear(); _adornerLayer.Visibility = Visibility.Collapsed; }; sb.Begin(_adorner); } catch (Exception) { } break; } _draggedData = null; //_adornerLayer.PreviewMouseMove -= new MouseEventHandler(_adorner_MouseMove); //_adornerLayer.PreviewMouseUp -= new MouseButtonEventHandler(_adorner_MouseUp); _adornerLayer.StylusUp -= new StylusEventHandler(_adornerLayer_StylusUp); if (_adorner != null) { _adorner.ReleaseMouseCapture(); } _adorner = null; //_mouseCaptured = false; _stylusCaptured = false; }
public void DragSourcePieMenuPreviewMouseLeftButtonUp(PieMenuHitTestEventArgs e) { StylusEventArgs ee = e.EventArgs; if (_adorner != null) { _adorner.AdornerDropState = DropState.CanDrop; switch (_adorner.AdornerDropState) { case DropState.CanDrop: try { ((Storyboard)_adorner.Resources["canDrop"]).Completed += (s, args) => { _adornerLayer.Children.Clear(); _adornerLayer.Visibility = Visibility.Collapsed; }; ((Storyboard)_adorner.Resources["canDrop"]).Begin(_adorner); // Added position in drop target //Point pos = ee.GetPosition((IInputElement)_dropTarget); Point temp = PieMenuHitTestEventArgs.FinalPt; Point pos = new Point(temp.X - 30, temp.Y - 30); if (ItemDropped != null) ItemDropped(_adorner, new DragDropEventArgs(_draggedData, pos, _dropTarget)); } catch (Exception) { } break; case DropState.CannotDrop: try { Storyboard sb = _adorner.Resources["cannotDrop"] as Storyboard; DoubleAnimation aniX = sb.Children[0] as DoubleAnimation; aniX.To = _delta.X; DoubleAnimation aniY = sb.Children[1] as DoubleAnimation; aniY.To = _delta.Y; sb.Completed += (s, args) => { _adornerLayer.Children.Clear(); _adornerLayer.Visibility = Visibility.Collapsed; }; sb.Begin(_adorner); } catch (Exception) { } break; } } _draggedData = null; //_adornerLayer.PreviewMouseMove -= new MouseEventHandler(_adorner_MouseMove); //_adornerLayer.PreviewMouseUp -= new MouseButtonEventHandler(_adorner_MouseUp); _adornerLayer.StylusUp -= new StylusEventHandler(_adornerLayer_StylusUp); if (_adorner != null) { _adorner.ReleaseMouseCapture(); } _adorner = null; //_mouseCaptured = false; _stylusCaptured = false; }
public void DragSourcePieMenuPreviewMouseMove(object sender, StylusEventArgs e) { if (e.InAir) _draggedData = null; if (_draggedData != null) { //release the stylus like up event _draggedData = null; _stylusCaptured = false; if (_adorner != null) { //_adorner.ReleaseStylusCapture(); _adornerLayer.Children.Remove(_adorner); } } _draggedData = (sender as FrameworkElement).DataContext; if (!_stylusCaptured && _draggedData != null) { // Only drag when user moved the mouse by a reasonable amount. if (DragDropHelper.IsMovementBigEnough(_initialMousePosition, e.GetPosition(_topUserControl))) { try { _adorner = (DragDropAdornerBase)GetDragDropControl(sender as DependencyObject); _adorner.DataContext = _draggedData; _adorner.Opacity = 0.7; _adornerLayer.Visibility = Visibility.Collapsed; _adornerLayer.Children.Add(_adorner); //_stylusCaptured = Stylus.Capture(_adorner); Canvas.SetLeft(_adorner, _initialMousePosition.X - 20); Canvas.SetTop(_adorner, _initialMousePosition.Y - 15); //_adornerLayer.PreviewMouseMove += new MouseEventHandler(_adorner_MouseMove); //_adornerLayer.PreviewMouseUp += new MouseButtonEventHandler(_adorner_MouseUp); //_adornerLayer.StylusUp += new StylusEventHandler(_adornerLayer_StylusUp); } catch (Exception eee) { System.Diagnostics.Debug.Print(eee.ToString()); // bummer } } } }