public override void OnKeyUp(DesignCanvas canvas, KeyRoutedEventArgs args) { if (args.Key == VirtualKey.Menu) { _drawRectangle = false; Cursor = DefaultCursor; canvas.InvalidateCursor(); } else if (args.Key == VirtualKey.Shift) { _linkAxes = false; } else if (args.Key == VirtualKey.Control) { _originAtCenter = false; } else if (args.Key == VirtualKey.Space) { _shouldMoveOrigin = false; } else { base.OnKeyUp(canvas, args); return; } args.Handled = true; canvas.Invalidate(); }
public override void OnPointerMoved(DesignCanvas canvas, PointerRoutedEventArgs args) { base.OnPointerMoved(canvas, args); if (_origin.HasValue) { var pos = canvas.FromClientPosition(args.GetCurrentPoint(canvas).Position); if (args.KeyModifiers.HasFlag(VirtualKeyModifiers.Shift)) { pos = ClampToOrigin(pos, _origin.Value); } if (_shouldMoveOrigin) { _origin = new Point( _origin.Value.X + pos.X - _anchor.X, _origin.Value.Y + pos.Y - _anchor.Y); } _anchor = pos; _points = Slicing.IntersectPaths(canvas.Layer, _origin.Value.ToVector2(), _anchor.ToVector2()); canvas.Invalidate(); } Cursor = args.KeyModifiers.HasFlag(VirtualKeyModifiers.Menu) ? Cursors.KnifeWithPlus : DefaultCursor; canvas.InvalidateCursor(); }
protected override void CompleteMove(DesignCanvas canvas) { base.CompleteMove(canvas); _previousPoint = null; Cursor = DefaultCursor; canvas.InvalidateCursor(); }
public override void OnPointerPressed(DesignCanvas canvas, PointerRoutedEventArgs args) { base.OnPointerPressed(canvas, args); if (args.GetCurrentPoint(canvas).Properties.IsLeftButtonPressed) { _previousPoint = args.GetCurrentPoint(canvas).Position; Cursor = Cursors.HandGrab; canvas.InvalidateCursor(); } }
public override void OnKeyDown(DesignCanvas canvas, KeyRoutedEventArgs args) { if (args.Key == VirtualKey.Menu) { _drawRectangle = true; Cursor = Cursors.CrossWithRectangle; canvas.InvalidateCursor(); } else if (args.Key == VirtualKey.Shift) { _linkAxes = true; } else if (args.Key == VirtualKey.Control) { _originAtCenter = true; } else if (args.Key == VirtualKey.Space && _origin.HasValue) { _shouldMoveOrigin = true; } else if (args.Key == VirtualKey.Escape && _origin.HasValue) { _undoGroup.Reset(); _undoGroup.Dispose(); _undoGroup = null; _origin = null; ((App)Application.Current).InvalidateData(); } else { base.OnKeyDown(canvas, args); return; } args.Handled = true; canvas.Invalidate(); }