Bonjour

Je seche sur un problème que je ne comprends pas !
Dans un picturebox, je cree une image de fond construite avec un graphics.FromImage

Ensuite j'essaye de supperposer une autre image avec un Graphics issu d'un CreateGraphics

Voici le coprs de la fonction


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
    // ***********************************************************************************
    Bitmap legend=null;
    public void refreshPrintPreview()
    {
      Bitmap BitmapToPrint = new Bitmap(printPreview.Width, printPreview.Height);
      Graphics g = Graphics.FromImage(BitmapToPrint);
      _printDocument.DrawMapToPrint(g, BitmapToPrint.Width, BitmapToPrint.Height);
      printPreview.BackgroundImage = BitmapToPrint;
 
      legend = _printDocument.DrawLegend(null, 0, 0);
 
//      Graphics grx = Graphics.FromImage(BitmapToPrint); // ici ca marche mais c'est pas le but de faire comme ca
      Graphics grx=printPreview.CreateGraphics();
      grx.DrawImage(legend,new Point(20,20));
 
    }
Le resultat c'est que mon image de fond (BitMapToprint) est bien visible mais pas legend

Pour m'assurer j'ai repris le DrawImage de legend dans l'event paint de la form et dans l'event paint de la picturebox

Je parviens a voir parfois en flash l'image legend s'afficher mais elle disparait immediatement

Il y a donc qq part un event qui fait un refresh de picturebox APRES le paint mais comment le trouver ? j'ai deja cherché un peu partout sans succes

Merci pour vos idéés