C# / Windows FORM, Rendre un label transparent

Résolu
Plumal
Messages postés
16
Date d'inscription
jeudi 4 février 2021
Statut
Membre
Dernière intervention
14 février 2021
- 4 févr. 2021 à 11:02
Whismeril
Messages postés
17482
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
3 juillet 2022
- 6 févr. 2021 à 14:16
Bonjour,

Actuellement je crée un jeu d'échec. J'ai réalisé mon échiquier via des labels stocké dans un tableau de label (coordonnée X, Y pour une case A 8 par exemple).

Désormais, je souhaite afficher des pièces sur mon interface graphique.

Pour cela, j'ai vu deux solutions :

La première serait d'utiliser des images de pièces déjà existantes de les détourer (via un logiciel tel photoshop) et de les importer dans une picture box. J'ai essayé pour le roi blanc, et malgré le fait que l'image soit détouré lorsque je l'envoi sur discord par exemple, elle s'affiche avec un fond blanc sur mon interface graphique (voir lien ci dessous) :

https://www.noelshack.com/2021-05-4-1612432519-unknown.png


La seconde a été d'utilisé un label, d'utiliser l'unicode et de faire en sorte que le fond du label soit le meme que pour l'échiquier.
Ainsi, j'ai fais en sorte que mon label change de parent, puis, je lui ai défini son BackColor à "transparent".
Cependant, lorsque je fais ça (après l'avoir mis en avant via la méthode BringToFront), il n'apparait pas (et j'ai bien changé la couleur du texte à Black)..
            this.labelRoiBlanc.Parent = this.tabLabelCase[5, 5];
            this.labelRoiBlanc.BackColor = Color.Transparent;
            this.labelRoiBlanc.ForeColor = Color.Black;
            this.labelRoiBlanc.BringToFront();
            this.labelRoiBlanc.Text = "\x2654";



Si quelqu'un à une solution je suis preneur !

8 réponses

Whismeril
Messages postés
17482
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
3 juillet 2022
600
6 févr. 2021 à 13:11
La position c'est dans le repère du Parent.
Si en gros, tes picturebox qui font le damier font à peu près la taille des pièces, il faut qu'elle soit proche de 0, 0
1