コード例 #1
0
        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();
            });
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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();
            });
        }