c# pictureBox Zeichnung: Effiziente Tipps zur Verwendung unabhängiger Methoden
In einer C# Formulare -Anwendung können Sie benutzerdefinierte Grafiken auf der PictureBox -Steuerung zeichnen. Benutzer können jedoch auf Probleme stoßen, wenn sie versuchen, dies durch eine separate Methode zu tun.
Frage:
Der Benutzer möchte möglicherweise eine Methode erstellen, mit der Kreise in der PictureBox bequem gezogen werden können, stellt jedoch fest, dass die Methode nicht die erwarteten Ergebnisse erzeugt. Die Problemmethode initialisiert die Bitmap, die Grafikobjekte und die zum Zeichnen von Kreisen verwendeten Bürsten. Wenn er jedoch im Packereignis von PictureBox aufgerufen wird, kann er den Kreis nicht richtig zeichnen.
Lösung:
Um eine separate Methode zum Zeichnen auf PictureBox zu verwenden, wissen Sie unbedingt, ob das Ziel darin besteht, das von PictureBox angezeigte Bild oder direkt auf der Steuerung selbst zu zeichnen.
Methode 1: Zeichnen Sie direkt auf die Kontrolle
]Um direkt auf die Steuerung zu zeichnen (ohne das Bild zu beeinflussen), verwenden Sie den Packereignis von PictureBox, wie unten gezeigt:
private void pictureBox2_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44));
}
In diesem Fall ist die Zeichnung hartnäckig, die Grafiken sind an die Kontrolle gebunden, nachdem die Größenänderung oder das Bewegen der Kontrolle bewegt werden.
Methode 2: Zeichnen Sie das Bild
]Um ein von PictureBox angezeigter Bild zu zeichnen, erstellen Sie eine separate Methode und zeichnen Sie mit dem aus der Bildeigenschaft von PictureBox erhaltenen Grafikobjekt.
void drawIntoImage()
{
using (Graphics G = Graphics.FromImage(pictureBox1.Image))
{
G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44));
}
pictureBox1.Refresh();
}
Nachdem die Zeichnung abgeschlossen ist, rufen Sie die Methode von Refresh () von PictureBox an, um die Anzeige zu aktualisieren. In diesem Fall sind die Grafiken dem Bild anhaltend und werden von einer Skalierung oder Transformation des Bildes beeinflusst.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3