Когда я пытаюсь нажать Да и Принять фигуру, она помещается в список фигур
![enter image description here](https://i.stack.imgur.com/7AblS.png)
Поэтому мне нужно сохранить все это, поэтому я перерисовываю его (перебирая список / коллекцию фигур с использованием foreach), используя это:
public void DrawAllShapes(object sender, PaintEventArgs e)
{
foreach(Shape shape in _shapes)
{
switch (s.type)
{
case Shape.ShapeType.rectangle:
shape.DrawRectangle(shape.color, shape.strokeThickness, shape.points, shape.width, shape.height, e.Graphics);
break;
case Shape.ShapeType.square:
shape.DrawSquare(shape.color, shape.strokeThickness, shape.points, shape.width, shape.height, e.Graphics);
break;
case Shape.ShapeType.circle:
shape.DrawCircle(shape.color, shape.strokeThickness, shape.points, shape.width, shape.height, e.Graphics);
break;
case Shape.ShapeType.ellipse:
shape.DrawEllipse(shape.color, shape.strokeThickness, shape.points, shape.width, shape.height, e.Graphics);
break;
case Shape.ShapeType.triangle:
shape.DrawTriangle(shape.color, shape.strokeThickness, shape.tPoints.ToArray(), shape.x, shape.y, shape.width, e.Graphics);
break;
}
}
}
Это вызывается в методе рисования Canvass,Но это происходит.Эллипс преобразуется в прямоугольник.
![enter image description here](https://i.stack.imgur.com/SsP5u.png)
Как добавить фигуры
public void AcceptShape()
{
switch (buttons)
{
case Shape.ShapeType.rectangle:
var rect = new Shape{
strokeThickness = strokeRect,
color = rC,
points = new Point((int)rX,(int)rY),
width = rW,
height = rH,
type = (Shape.ShapeType)System.Enum.Parse(typeof(Shape.ShapeType), "rectangle")
};
draw._shapes.Add(rect);
Data();
break;
case Shape.ShapeType.square:
var square = new Shape {
strokeThickness = strokeSquare,
color = sC,
points = new Point((int)sX, (int)sY),
width = sW,
height = sH,
type = (Shape.ShapeType)System.Enum.Parse(typeof(Shape.ShapeType), "square")
};
draw._shapes.Add(square);
Data();
break;
case Shape.ShapeType.circle:
var circle= new Shape {
strokeThickness = strokeCircle,
color = cC,
points = new Point((int)cX, (int)cY),
width = cW,
height = cH,
type = (Shape.ShapeType)System.Enum.Parse(typeof(Shape.ShapeType), "circle")
};
draw._shapes.Add(circle);
Data();
break;
case Shape.ShapeType.ellipse:
var ellipse = new Shape {
strokeThickness = strokeEllipse,
color = eC,
points = new Point((int)eX, (int)eY),
width = eW,
height = eH,
type = (Shape.ShapeType)System.Enum.Parse(typeof(Shape.ShapeType), "ellipse")
};
draw._shapes.Add(ellipse);
Data();
break;
case Shape.ShapeType.triangle:
var triangle = new Shape{
strokeThickness = strokeTriangle,
color = tC,
tPoints = t_Points.ToArray(),
x=tX,
y=tY,
width = tW,
type = (Shape.ShapeType)System.Enum.Parse(typeof(Shape.ShapeType), "triangle")
};
draw._shapes.Add(triangle);
triangleClicked = false;
Data();
break;
}
}