我使用以下代码绘制如下行
private void Form1_Paint(object sender, PaintEventArgs e)
{
base.OnPaint(e);
path = new GraphicsPath(new Point[]{ new Point(10, 10),
new Point(100, 100) } ,
new byte[] {(byte)PathPointType.Start,
(byte)PathPointType.Line });
e.Graphics.DrawPath(Pens.Red, path);
}
我需要点击一个按钮来改变路径并重新绘制它,所以我使用
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < path.PointCount; i++)
{
path.PathPoints[i].X += 100;
path.PathPoints[i].Y += 100;
}
Invalidate();
//path.
}
问题没有影响,我不想刷新我画的容器
答案 0 :(得分:0)
首先,它不会给你带来任何影响,因为你总是在OnPaint
中创建一个新路径。结果你有相同的图片。为了更改它,您至少需要将路径创建移动到构造函数或其他初始化方法
其次,PathPoint
是PointF
的数组,PointF
是一个结构,因此它是不可变的,你不会通过这样做获得数组中的新点 - {{1 }}