protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); if (e.LeftButton != MouseButtonState.Pressed) { _start = new Point?(); } if (_start.HasValue) { AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(this); if (adornerLayer.IsNotNull()) { adornerLayer.Add(new SSSelectionAdorner(this, _start)); } } if (e.LeftButton != MouseButtonState.Pressed || _moving) { return; } _moving = true; }
protected override void OnMouseUp(MouseButtonEventArgs e) { if (IsMouseCaptured) { ReleaseMouseCapture(); Mouse.OverrideCursor = (Cursor)null; } AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(_canvas); if (adornerLayer.IsNotNull()) { var pt = _canvas.TranslatePoint(_start.Value, adornerLayer); adornerLayer.Remove(this); _canvas.AddSelection(pt, Math.Abs(_start.Value.X - _end.Value.X), Math.Abs(_start.Value.Y - _end.Value.Y)); _start = null; _end = null; } e.Handled = true; }