обновить только путь - PullRequest
       11

обновить только путь

0 голосов
/ 13 сентября 2011

Я использую следующий код для рисования линии следующим образом

        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.

    }

проблемаэффекта не произошло, и я не хочу обновлять контейнер, нарисованный на нем

1 Ответ

0 голосов
/ 14 сентября 2011

Во-первых, это не даст никакого эффекта, так как вы всегда создаете новый путь в OnPaint.В результате у вас та же картина.Чтобы изменить его, вам нужно, по крайней мере, переместить создание пути в конструктор или другой метод инициализации

Во-вторых, PathPoint - это массив PointF, PointF - это структура, поэтому она неизменнаи при этом вы не получите новую точку в массиве - PathPoints[i].X += 10

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...