[C# + GDI] Panel transparent: + Pb de rafraichissement

Signaler
Messages postés
2
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
22 juin 2007
-
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
-
Salut,

J'ai crée un panel transparent qui marche plutôt bien en ce qui
concerne la transparence; mais le problème est quand je fais bouger
l'ascenseur, les parties du panel qui apparaissent sont floues et ont
de sérieux problèmes d'encre.

voici ma méthode onpaint:
if(!isPainting)
{
isPainting = true;
backBrush = new SolidBrush(Color.FromArgb(this.OpacityAsByte, base.BackColor));
tempBitmap = new Bitmap(this.Width, this.Height);
tempGraphics = Graphics.FromImage(tempBitmap);
 
tempGraphics.FillRectangle(backBrush, 0,0,this.Width, this.Height);
e.Graphics.DrawImage(tempBitmap, e.ClipRectangle);
isPainting = false;
isResizing = false;
}

Si quelqu'un a une astuce ou n'importe quoi qui pourrait me mettre sur la voie qu'il n'hésite pas à me faire signe.
merci.
A voir également:

3 réponses

Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
1
essaie le double buffering , ya deja une reponse dans le forum la dessus

www.survey-copter.com
Messages postés
2
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
22 juin 2007

j'aimerai bien essayer une de ces solutions (buffering) mais etant donne que je debute dans ce domaine la, j'ai pour l'instant epuise mes options.
et j'ai cherche avant de poster donc visiblement je suis passe a cote de la solution dont tu parles alors si possible passe moi le lien de cette solution

merci
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
10
Tu peux faire le changement au niveau de la Form qui contient ton
panel, en mettant à true la propriété DoubleBuffered de la Form.


Si ça ne suffit pas, alors tu peux essayer d'utiliser les
BufferedGraphics (dans System.Drawing). Pour un exemple d'utilisation
de BufferedGraphics tu peux jeter un oeil sur une de mes sources (dans le projet "Eyes", regarde le code de la Form "Eyes").


Une autre possibilité est de déclarer ton panel en mode "double
buffer", mais contrairement aux Forms, il faut cette fois rajouter "à
la main" cette propriété.

Working as designed