c # Drawing Picturebox: conseils efficaces pour utiliser des méthodes indépendantes
Dans une application C # Forms, vous pouvez dessiner des graphiques personnalisés sur le contrôle PictureBox. Cependant, les utilisateurs peuvent rencontrer des problèmes lorsque vous essayez de le faire via une méthode distincte.
question:
L'utilisateur peut vouloir créer une méthode pour dessiner des cercles sur la boîte d'image, mais constate que la méthode ne produit pas les résultats attendus. La méthode du problème initialise le bitmap, les objets graphiques et les pinceaux utilisés pour dessiner des cercles. Cependant, lorsqu'il est appelé dans le gestionnaire d'événements de peinture de Picturebox, il ne peut pas dessiner correctement le cercle.
Solution:
Pour utiliser efficacement une méthode distincte pour dessiner sur Picturebox, assurez-vous de savoir si l'objectif est de dessiner dans l'image affichée par PictureBox ou directement sur le contrôle lui-même.
Méthode 1: dessinez directement sur le contrôle
]pour dessiner directement sur le contrôle (sans affecter l'image), utilisez le gestionnaire d'événements de peinture de Picturebox, comme illustré ci-dessous:
private void pictureBox2_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44));
}
Dans ce cas, le dessin est persistant, les graphiques sont liés au contrôle, après tout redimensionnement ou déplacement du contrôle.
Méthode 2: dessiner dans l'image
]pour dessiner une image affichée par PictureBox, créez une méthode distincte et dessinez à l'aide de l'objet graphique obtenu à partir de la propriété d'image de PictureBox.
void drawIntoImage()
{
using (Graphics G = Graphics.FromImage(pictureBox1.Image))
{
G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44));
}
pictureBox1.Refresh();
}
Une fois le dessin terminé, appelez la méthode Refresh () de Picturebox pour mettre à jour l'affichage. Dans ce cas, les graphiques sont persistants à l'image et sont affectés par toute mise à l'échelle ou transformation de l'image.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3