Я сделал окно, которое я нарисовал, используя Graphics.DrawLine () для каждого края.Но я бы хотел, чтобы коробка могла свободно перемещаться по экрану вместе с изменением размера краев.Поле создается с использованием средней точки, ширины и высоты, а затем основной математики, чтобы найти 4 точки, с которыми соединяются линии.У меня вопрос: как я могу обновить положение линий?Нужно ли очищать графику и заново рисовать линии в каждом кадре?Любые ответы будут полезны.Спасибо.
Вот код, который я использую:
private void Form1_Paint(object sender, PaintEventArgs e)
{
Point box_Middle = new Point(300, 300);
int boxWidth = 100;
int boxHeight = 200;
Pen boxPen = new Pen(Color.Red, 3);
DrawBox(e, boxPen, box_Middle, boxWidth, boxHeight);
}
void DrawBox (PaintEventArgs e, Pen pen, Point middle, int width, int height)
{
graphics = e.Graphics;
graphics.TextRenderingHint = System.Drawing.
Text.TextRenderingHint.
SingleBitPerPixelGridFit;
// Draw Box
Point topLeft = new Point(middle.X - width / 2, middle.Y - height / 2);
Point topRight = new Point(topLeft.X + width, topLeft.Y);
Point bottomLeft = new Point(topLeft.X, topLeft.Y + height);
Point bottomRight = new Point(topRight.X, bottomLeft.Y);
graphics.DrawLine(pen, topLeft, topRight);
graphics.DrawLine(pen, topLeft, bottomLeft);
graphics.DrawLine(pen, bottomLeft, bottomRight);
graphics.DrawLine(pen, topRight, bottomRight);
}