Bonjour à tous,

Voilà mon problème : j'aimerais, à des fins de caching, enregistrer dans un bitmap le rendu d'un UserControl (contenant des sous-contrôles).
J'ai bien tenté de surcharger la méthode OnPaint comme-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
this.layoutBitmap = new Bitmap(e.ClipRectangle.Width, e.ClipRectangle.Height);
Graphics graphic = Graphics.FromImage(this.layoutBitmap);
PaintEventArgs args = new PaintEventArgs(graphic, e.ClipRectangle);
base.OnPaint(args);
this.layoutBitmap.Save(PathEx.PrefixWithExePath("layout.png"), ImageFormat.Png);
En gros, je change l'évènement qui contient un Graphics sur un Bitmap. Je pensais que le base.OnPaint() allait continuer la cinématique du rendu mais en fait non. En plaçant un point d'arrêt dans la même méthode d'un sous-contrôle, je me suis aperçus qu'elle était appelée après celle de mon UserControl.

Merci de votre attention.