// todo !!!dispose missing & -= missing!!! public CroppingAdorner(Canvas adornedElement) : base(adornedElement) { _visualCollection = new VisualCollection(this); _originalCanvas = adornedElement; _canvasOverlay = new Canvas(); _rectangleManager = new RectangleManager(_canvasOverlay); _overlayManager = new OverlayManager(_canvasOverlay, _rectangleManager); _thumbManager = new ThumbManager(_canvasOverlay, _rectangleManager); _displayTextManager = new DisplayTextManager(_canvasOverlay, _rectangleManager); _visualCollection.Add(_canvasOverlay); MouseLeftButtonDown += MouseLeftButtonDownEventHandler; MouseMove += MouseMoveEventHandler; MouseLeftButtonUp += MouseLeftButtonUpEventHandler; //add overlay Loaded += (sender, args) => { _overlayManager.UpdateOverlay(); }; //if rectangle finalSize changed, re-draw overlay _rectangleManager.RectangleSizeChanged += (sender, args) => { _overlayManager .UpdateOverlay(); _displayTextManager .UpdateSizeText(); }; _rectangleManager.RectangleMoved += (sender, args) => { _overlayManager .UpdateOverlay(); _displayTextManager .UpdateSizeText(); }; _rectangleManager.OnRectangleDoubleClickEvent += (sender, args) => { OnRectangleDoubleClickEvent ?.Invoke(sender, new DoubleClickEventArgs { BitmapFrame = GetCroppedBitmapFrame() }); }; }
private void MouseMoveEventHandler(object sender, MouseEventArgs e) { if (_isMouseLeftButtonDown) { _rectangleManager.MouseMoveEventHandler(e); _overlayManager.UpdateOverlay(); _thumbManager.ShowThumbs(true); _displayTextManager.ShowText(true); _displayTextManager.UpdateSizeText(); _thumbManager.UpdateThumbsPosition(); } }
private void MouseMoveEventHandler(object sender, MouseEventArgs e) { if (_isMouseLeftButtonDown) { _rectangleManager.MouseMoveEventHandler(e); _overlayManager.UpdateOverlay(); _thumbManager.ShowThumbs(true); _displayTextManager.ShowText(true); _displayTextManager.UpdateSizeText(); _thumbManager.UpdateThumbsPosition(); OnRectangleLocationChangedEvent?.Invoke(_rectangleManager, new LocationChangedEventArgs() { NewLocation = e.GetPosition(_originalCanvas) }); } }