2016-03-04 1 views
3

Je veux faire un PictureBox semi-transparent: montrer le conent d'une image sur le dos mettre pas la couleur de base du formulaire.Semi transparent PictureBox C#

Mon projet

enter image description here

Les petits PictureBoxs qui sont à l'avant montre la couleur de fond de la forme (le contrôle) (-il « Transparent » comme couleur de fond), mais je veux afficher la couleur Rouge (l'image de fond de la grande PictureBox). Comment puis-je le faire?

+0

robuste demande avec WinForms, ne plaisante pas, je suis sérieux ... –

+0

Regardez [ce] (http://stackoverflow.com/questions/4144371/a- picturebox-problem) et [this] (http://stackoverflow.com/questions/19747926/override-a-transparent-picturebox-in-c-sharp-windows-application-form). –

+2

Vous voyez le parent en arrière-plan. Habituellement le formulaire, jamais un autre PictureBox sauf si vous affectez la propriété Parent dans le code. Vérifiez la classe PictureContainer dans [ce post] (http://stackoverflow.com/a/9387562/17034). –

Répondre

0

Cela peut ne pas répondre exactement à votre question, si ce n'est pas utile, je peux supprimer ma réponse. Je ne suis pas sûr si j'ai complètement compris. Si votre image d'arrière-plan doit être un simple PictureBox avec une seule couleur, le code suivant devrait fonctionner.

pictureBox1 - une image d'une étoile simple,

enter image description here

pictureBox2 - mon image de fond rouge

Bitmap b = new Bitmap("Star.png"); 
b.MakeTransparent(Color.White); 
pictureBox1.Image = b; 
pictureBox1.BackColor = pictureBox2.BackColor; 

Avant:

enter image description here

Après:

enter image description here

+0

Ce code fonctionne si l'image d'arrière-plan n'est pas une couleur simple? par exemple une carte de certaines régions du monde – hos130