Ich habe ein einfaches Beispiel erstellt, um ein Bild zu zeichnen, das einem Picturebox
zugewiesen wurde. Ich handhabe die MouseDown
und MouseUp
Ereignisse, die aktuelle Mausposition abrufen und zeichnen Sie eine Zeile am Ende eines MouseUp
Ereignisses.Zeichnen und aktualisieren PictureBox
private void Form1_Load(object sender, EventArgs e)
{
Bitmap image = new Bitmap("myImage.png");
pictureBox1.Image = image;
}
Point From, To;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
From = new Point(e.X, e.Y);
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawLine(Pens.Red, From, To);
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
To = new Point(e.X, e.Y);
pictureBox1.Refresh();
}
Der Code funktioniert, aber es zieht immer auf dem ersten Anfangsbild, ich will auf der Updates (die neuen Linien auf dem Bild erstellt wird) zeichnen.
Ich hoffe, meine Frage war klar.
Danke.
Nein es ist nicht klar. Dieser Code zeichnet nicht zum Bild, sondern über den Ort der Bilderbox. – Plutonix
@Plutonix Was meinst du damit, überhaupt kein Bild zu zeichnen? – Slashy
Das übergebene 'e.Graphics' ist für die Kontrolle, es wird diese Linie nicht zum tatsächlichen Bild hinzufügen. Es sieht so aus, als wären sie Teil des Bildes und das mag was du willst, es ist nicht klar – Plutonix