private void UpdateDrawable(object obj, EventArgs evt) { int deltaX = 0; int deltaY = 0; bool match = false; if (int.TryParse(xPositionBox.Text, out deltaX)) { if (int.TryParse(yPositionBox.Text, out deltaY)) { deltaX -= Drawable.Start.X; deltaY -= Drawable.Start.Y; if (deltaX != 0 || deltaY != 0) { match = true; canvas.undoRedoController.AddProcess(new TranslateCommand(canvas, Drawable, deltaX, deltaY)); } } } if (Drawable.Modifier.HasFlag(PropertyModifier.SizeAdjustable)) { SimpleShape current = (SimpleShape)Drawable; if (int.TryParse(wSizeBox.Text, out deltaX)) { if (int.TryParse(hSizeBox.Text, out deltaY)) { deltaX = Math.Abs(deltaX); deltaY = Math.Abs(deltaY); deltaX -= current.Width; deltaY -= current.Height; if (deltaX != 0 || deltaY != 0) { match = true; canvas.undoRedoController.AddProcess(new ResizeCommand(canvas, Drawable, new Point(1, 1), deltaX, deltaY)); } } } } if (match) { canvas.Invalidate(); } else { UpdateDrawable(); } }
public Tool(DrawingCanvas canvas) { drawingCanvas = canvas; MouseDown += Tool_MouseDown; MouseDown += (obj, evt) => { drawingCanvas.Invalidate(); }; }