private void PrintFigure(Figure figure) { Dispatcher.Invoke(() => { if (_isOneFigure) { CanvasMain.Children.RemoveAt(CanvasMain.Children.Count - 1); _shape.Figures.RemoveAt(_shape.Figures.Count - 1); } _shape.Figures.Add(figure); figure.SetColor(); figure.Draw(CanvasMain); _isOneFigure = true; SetEventOnLastFigure(); }); }
private void OnMouseDownFigure(object sender, MouseEventArgs e) { var p = e.GetPosition(CanvasMain); _chousenShape = (System.Windows.Shapes.Shape)sender; if (_shape.Figures.All(x => x.Tag != _chousenShape.GetHashCode())) { return; } _figure = _shape.Figures.First(x => x.Tag == _chousenShape.GetHashCode()); _figure.Tag = CanvasMain.Children.IndexOf(_chousenShape); _isMove = _isOneFigure = true; _oldPointFirst = _figure.FirstPoint; _oldPointSecond = _figure.SecondPoint; _x1 = p.X; _y1 = p.Y; }
private void ReceiveMoveFigure(Figure figure) { Dispatcher.Invoke(() => { if (CanvasMain.Children.Count <= figure.Tag) { return; } if (_isOneFigure) { CanvasMain.Children.RemoveAt(figure.Tag); } else { CanvasMain.Children.RemoveAt(CanvasMain.Children.Count - 1); } figure.SetColor(); figure.Draw(CanvasMain); _shape.Figures.Add(figure); SetEventOnLastFigure(); }); }