2010-11-03 6 views
0

J'ai un objet graphique sur lequel je dessine et j'expose. Cela fonctionne bien. La chose qui ne fonctionne pas dessine une image .png avec une section transparente. Je tire ces images de contrôle am ImageList (si cela fait une différence) avec l'appel:Comment dessiner une image avec une section transparente sur un objet Graphics en C#?

myGraphicsObject.DrawImage(myImage, x_position, y_position); 

Je n'ai pas mis spécifiquement une valeur de couleur transparente pour l'image .png et je ne peux trouver aucune valeur dans mon contrôle cela spécifie une couleur transparente pour le contrôle.

Pour l'image elle-même, j'ai essayé de remplir les couleurs transparentes pour 32bit (255,0,255), 8bit (0,0,0) et blanc (255,255,255) dans les sections transparentes souhaitées. Cependant, aucun n'est transparent quand il est dessiné.

Y at-il une méthode quelque part qui dit à l'image de devenir transparente pour une couleur spécifiée? D'autres suggestions/solutions?

Répondre

0

La valeur est sur le formulaire lui-même, pas les contrôles, il est appelé TransparencyKey Définissez cela à la couleur que vous souhaitez être transparent dans le concepteur WinForms, et toute couleur qui est égale à cette couleur (dans votre formulaire uniquement) ne sera pas rendu.

+0

J'ai essayé cela et cela ne fonctionne pas. De plus, j'en ai besoin transparent pour mon objet Graphics, pas pour le contrôle. –

+0

Ensuite, je ne sais pas ... Je l'ai utilisé à chaque fois et ça marche, mais je ne l'ai pas utilisé directement avec des objets GDI + –

0

Votre PNG s'affiche-t-il correctement (avec transparence) sur une ImageList? Peut-être que votre ImageList est réglé sur 24bit RGB? Changez en 32bit et cela devrait aider.

Questions connexes