Scintillement, transparence et background en .Net - HELP ME PLEASE !!!! :-)
UniversZen
Messages postés2Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention14 novembre 2008
-
13 nov. 2008 à 11:42
BadoqueAlex
Messages postés129Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention 6 juin 2009
-
6 juin 2009 à 13:56
Bonjour à tous,
Après plusieurs heures de vaines recherches, j'en appelle à votre science.
Ma form utilise une image de fond dont les bords sont arrondis, donc :
- BackgroundImage : mon image
- BackgroundImageLayout : none
- BackColor : Desktop
- FormBorderStyle : none
- TransparencyKey : Desktop
- Size : celle de l'image
Pas de pb, j'obtiens bien ce que je veux : une form aux bords arrondis avec mon image dans le fond.
Par contre au chargement de cette form tous les contrôles transparents posés dessus se dessinent en 2 étapes : d'abord tout noir et ensuite transparent ...
Ca clignote donc franchement ... un vrai SAPIN DE NOEL !!!
J'ai tenté pas mal de trucs simples mais rien de bien satisfaisant ... Je ne sais plus quoi faire sinon abandonner les bords arrondis (et donc la transparence de ma form principale) ...
UniversZen
Messages postés2Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention14 novembre 2008 14 nov. 2008 à 10:18
Merci gillardg, ton code améliore légèrement les choses puisque je peux charger ma form sans transparence.
Par contre ça ne résoud pas tout : maintenant, au lieu d'être noirs puis transparents sur l'image de fond, mes composants sont transparents sur le bureau puis transparents sur l'image de fond ...
Je ne sais pas si c'est très clair donc :
- avant : composant noir puis transparent 'normalement' (donc laissant apparaître l'image de fond)
- maintenant : transparent sans tenir compte de la form (laissant apparaître le bureau) puis transparent 'normalement' (donc laissant apparaître l'image de fond).
Le clignotement est donc moins gênant (mieux vaut des zones de la couleur du bureau que des zones noires) mais il est toujours présent et gênant ...
D'autres idées ????
Allez-y, maltraitez mon code, mais faut que ça s'affiche 'softly' !
BadoqueAlex
Messages postés129Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention 6 juin 2009 6 juin 2009 à 13:56
OUI ! LE DOUBLEBUFFERING ...
Essayez d'aller sur la MSDN les gars parce que nombre de vos questions y sont expliquées ...
Tu as deux solutions :
Créer un nouveau composant avec sa propriété DoubleBuffered = True ou alors redéfinir le style de la fenêtre avec le doublebuffering. Tout est dit, à vous de chercher.