我正在一个项目上,用户可以在其中绘制形状并对其进行修改(大小,描边等)。然后我遇到一个问题,我试图使笔触的粗细只是为了在内部进行调整,所以我执行了以下代码:
public void DrawCircle(Color c, int stroke, float w, float h, Graphics g)
{
this.width = w;
this.height = h;
this.strokeThickness = stroke;
this.type = ShapeType.circle;
w -= strokeThickness;
h -= strokeThickness;
PointF points = new PointF();
//Centering the Shape
points.X = (float)((center.X - (w/ 2)));
points.Y = (float)((center.Y - (h / 2)));
//Aliasing for smooth graphics when drawing and resizing
g.InterpolationMode = InterpolationMode.High;
//Drawing
RectangleF rect = new RectangleF(points.X, points.Y, w, h);
g.DrawEllipse(new Pen(c, stroke), rect);
}
但是每当我保存它时(保存在一个集合中以重新粉刷)。它是这样的:
它在精确的中心显示点。图片框后消失。Refresh()/ Invalidate();但我不想要它。您认为这里发生了什么?
随时询问您想知道的代码部分。我刚刚介绍了绘图部分。