public virtual void ProcessMouseMove(MouseEventArgs e) { if (e.Handled) { return; } #if DEBUG this.CheckMouseEventArgs(e); #endif if ((this.InitialMousePositionToDragContainerAdorner.HasValue) && (e.LeftButton == MouseButtonState.Pressed)) { if (!this.IsDragging) { Point currentPosition = e.GetPosition(this.AdornerLayerInsideDragContainer); if (DragDropHelper.IsMouseMoveDrag(this.InitialMousePositionToDraggedElement.Value, currentPosition)) { this.BeginDrag(); } } if (this.IsDragging) { this.Drag(e); } } }
private void DragMove(Func <IInputElement, Point> getPosition, bool isCreatingCopy) { if (!m_initialMousePositionToAdorner.HasValue) { return; } if (!m_isDragging) { var position = getPosition.Invoke(m_adornerLayer); if (DragDropHelper.IsMouseMoveDrag(m_initialMousePositionToAdorner.Value, position)) { m_draggedElementGhost = DragSourceManagerBase.CreateDraggedElementGhost(m_draggedElement, isCreatingCopy); this.OnDragStart(getPosition); this.IsDragging = true; } } if (m_isDragging) { this.OnDragMove(getPosition); this.UpdateGhost(getPosition); } }