protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) { base.OnMouseLeftButtonDown(e); _isMouseDown = true; _draggingItem = this; }
protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); if (e.LeftButton != MouseButtonState.Pressed) { _isMouseDown = false; _draggingItem = null; } }
protected override void OnMouseLeave(MouseEventArgs e) { base.OnMouseLeave(e); if (_isMouseDown && e.LeftButton == MouseButtonState.Pressed) { _draggingItem = this; } _isMouseDown = false; }
internal static void ResetDraggingItem() { _draggingItem = null; }