private void DragFinished() { Mouse.Capture(null); if (IsDragging) { AdornerLayer.GetAdornerLayer(designAdorner.AdornedElement).Remove(designAdorner); var newTop = draggingInfo.Top + designAdorner.TopOffset / ZoomLevel; var newLeft = draggingInfo.Left + designAdorner.LeftOffset / ZoomLevel; Canvas.SetTop(DraggingElement, newTop); Canvas.SetLeft(DraggingElement, newLeft); designAdorner = null; } if (ConstraintToBounds && !ElementWithin(DraggingElement, DragArea)) { DragArea.Children.Remove(DraggingElement); DraggingElement = null; } IsDragging = false; IsDown = false; }
private void DragStarted() { IsDragging = true; draggingInfo.Left = Canvas.GetLeft(DraggingElement); draggingInfo.Top = Canvas.GetTop(DraggingElement); designAdorner = new DesignAdorner(DraggingElement); var layer = AdornerLayer.GetAdornerLayer(DraggingElement); layer.Add(designAdorner); }