J'ai une application WinForm qui a une image affichée dans un PictureBox qui a la fonctionnalité supplémentaire de permettre à un utilisateur de dessiner un rectangle sur l'image en cliquant et en faisant glisser. L'emplacement, la hauteur et la largeur du rectangle sont enregistrés sur le disque.Comment dessiner un rectangle dans l'application WinForm à l'emplacement correct
Lorsque l'image est vue à nouveau, je voudrais automatiquement redessiner ce rectangle dans la même position sur l'image.
Lorsque je le redessine, cependant, la hauteur et la largeur sont correctes, mais l'emplacement est toujours désactivé.
L'emplacement est capturé dans l'événement MouseDown comme si
private void pbSample_MouseDown(object Sender, MouseEventArgs e)
{
if (SelectMode)
{
StartLocation.X = e.X;
StartLocation.Y = e.Y;
//later on these are saved as the location of the rectangle
}
}
Et je redessine comme si
public void DrawSelectedArea(Rectangle rect)
{
Graphics g = this.pbSample.CreateGraphics();
Pen p = new Pen(Brushes.Black);
g.DrawRectangle(p, rect);
}
Compte tenu de l'emplacement des MouseEventArgs capturés au cours de l'événement MouseDown comment puis-je calculer l'emplacement correct pour redessiner mon rectangle?