private void Item_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if (_MouseCaptureElement != null) { _MouseCaptureElement.ReleaseMouseCapture(); _MouseCaptureElement = null; } _MouseDownItem = null; }
private void Item_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { var fe = e.OriginalSource as FrameworkElement; if (fe != null) { var item = fe.DataContext as INewItemType; if (item != null) { _MouseDownItem = item; _MouseDownPoint = e.GetPosition(this); } fe.CaptureMouse(); } }
private void Item_MouseMove(object sender, MouseEventArgs e) { if (_MouseDownItem != null) { var v = e.GetPosition(this) - _MouseDownPoint; if (Math.Abs(v.X) >= SystemParameters.MinimumHorizontalDragDistance || Math.Abs(v.Y) >= SystemParameters.MinimumVerticalDragDistance) { if (_MouseCaptureElement != null) { _MouseCaptureElement.ReleaseMouseCapture(); _MouseCaptureElement = null; } DragDrop.DoDragDrop(this, new DataObject(XDrawCore.DragDropItemType, _MouseDownItem), DragDropEffects.Copy); _MouseDownItem = null; } } }