Graphics 仅更新路径图形
我使用下面的代码来画一条线,如下所示Graphics 仅更新路径图形,graphics,c#-3.0,Graphics,C# 3.0,我使用下面的代码来画一条线,如下所示 private void Form1_Paint(object sender, PaintEventArgs e) { base.OnPaint(e); path = new GraphicsPath(new Point[]{ new Point(10, 10), new Point(100, 100) } ,
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.
}
问题没有发生任何效果,我不想首先刷新在其上绘制的容器,它不会给您任何效果,因为您总是在OnPaint中创建新路径。因此,您拥有相同的图片。为了更改它,您至少需要将路径创建移动到构造函数或其他初始化方法
第二,PathPoint是一个PointF数组,PointF是一个结构,因此它是不可变的,这样做不会在数组中获得新的点-PathPoints[i].X+=10如何在构造函数中绘制,我的意思是什么与e等价。Graphics你不需要在构造函数中绘制,我说的是数据。在构造函数中初始化点数组,仅在OnPaint中绘制