Comment dessiner des objets graphiques sur une image

ami7 Messages postés 99 Date d'inscription dimanche 8 août 2010 Statut Membre Dernière intervention 29 juin 2011 - 7 avril 2011 à 22:39
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 - 8 avril 2011 à 08:27
bonsoir,
j'utilise un code c# qui permet de dessiner des objets ghraphiques (rectangle , ellipse, ligne...) le question c'est que je veut tout d'abord inséré une image et ensuite ces objets graphiques seront dessinés sur cette image sachant que j'ai utilisé un panel et'
ça marche bien mais maintenant je veux remplacer ce panel par une image
est t'il possible ? que je doit ajouter à mon code pour que les objet graphique seront dessinées sur cette image

merci

1 réponse

LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
8 avril 2011 à 08:27
Salut ami7,

Pour ma part je crée un UserControl dérivant de PictureBox et j'affecte dynamiquement la propriété "Image" de mon contrôle :

public class DessinDansImage : PictureBox
{
    // Bitmap dans lequel sera dessiné l'état du contrôle
    private Bitmap _ctrlBitmap;

    public DessinDansImage()
    {
        // Détermine comment l'image sera affiché dans le contrôle
        this.SizeMode = PictureBoxSizeMode.CenterImage;

        // Initialise l'état du contrôle
        _ctrlBitmap = null;
        UpdateImage();
    }

    // Dessine l'état du contrôle
    public void UpdateImage()
    {
        // Crée le bitmap et ouvre l'objet Graphics
        _ctrlBitmap = new Bitmap( Width, Height );
        Graphics graphics = Graphics.FromImage( _ctrlBitmap );

        // Rempli le fond du bitmap
        graphics.FillRectangle( Brushes.White, ClientRectangle );

        // Autre dessins....
        ;

        // Libère l'objet Graphics
        graphics.Flush();
        graphics.Dispose();

        // Affiche l'image dans le contrôle
        this.Image = _ctrlBitmap;
    }

    // Lors d'un redimensionnement du contrôle
    protected override void OnResize( EventArgs e )
    {
        base.OnResize( e );

        // Met à jour l'état du contrôle
        UpdateImage();
    }
}


En espérant que ça te serve... bonne continuation ;)
0
Rejoignez-nous