椭圆变成长方形
Ellipse transforms into rectangle
当我尝试单击是并接受形状时,它会被推入形状列表
所以我需要保留所有内容,所以我重新绘制它(使用 foreach 遍历形状 list/collection),使用:
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的绘画方法中调用。
但这发生了。椭圆变成矩形。
我如何添加形状
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;
}
}
foreach(Shape shape in _shapes)
{
switch (shape.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;
}
}
将变量更改为 switch。
当我尝试单击是并接受形状时,它会被推入形状列表
所以我需要保留所有内容,所以我重新绘制它(使用 foreach 遍历形状 list/collection),使用:
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的绘画方法中调用。 但这发生了。椭圆变成矩形。
我如何添加形状
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;
}
}
foreach(Shape shape in _shapes)
{
switch (shape.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;
}
}
将变量更改为 switch。