//Обработка действий при нажатии на ЛКМ в рабочей области private void WorkSpace_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { thickness = Convert.ToDouble(FigureThickness.Text); mousePosition = Mouse.GetPosition(WorkSpace); Color color = ColorPickerButton.SelectedColor.Value; SolidColorBrush myBrush = new(color); IInputElement inputElement = Mouse.DirectlyOver;//Поиск объектов под мышью if (CreateLineButton.IsChecked == false) { if (inputElement.GetType() != typeof(Canvas)) { currentFigure = (Shape)inputElement; } } if (selectedAction == ButtonType.NoneB) { if (inputElement is Polyline && e.ClickCount == 2) { graphicElements.InsertPointIntoLine((Shape)inputElement, mousePosition); } } else if (selectedAction == ButtonType.rectB) { currentFigure = graphicElements.CreateRectangle(new Rect(mousePosition.X, mousePosition.Y, mousePosition.X, mousePosition.Y), myBrush, Convert.ToInt16(FigureThickness.Text)); } else if (selectedAction == ButtonType.lineB) { if (polylinestate == false) { if (inputElement is Polyline) { graphicElements.InsertPointIntoLine((Shape)inputElement, mousePosition); } else { polylinestate = true; currentFigure = graphicElements.AddLine(mousePosition, myBrush, thickness); } } else { if (currentFigure != null) { if (e.ClickCount == 2) { polylinestate = false; } else { graphicElements.AddPointToLine(currentFigure, mousePosition); } } } } else if (selectedAction == ButtonType.fillB) { if (inputElement is not Canvas) { GraphicElements.Fill(currentFigure, ColorPickerButton.SelectedColor.Value); } } else if (selectedAction == ButtonType.FillBorderB) { if (inputElement is not Canvas) { GraphicElements.FillBorder(currentFigure, ColorPickerButton.SelectedColor.Value, thickness); } } else if (selectedAction == ButtonType.deleteB) { if (inputElement is not Canvas) { graphicElements.DeleteFigure(currentFigure); } } else if (selectedAction == ButtonType.moveB) { ClickCount = e.ClickCount; } else if (selectedAction == ButtonType.scaleB) { if (inputElement is not Canvas) { hitType = BorderCheck(currentFigure, mousePosition); } } previousMouseState = 1; }