Transparence et panel [Résolu]

Signaler
Messages postés
69
Date d'inscription
dimanche 30 octobre 2005
Statut
Membre
Dernière intervention
6 mars 2008
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
Bonjour,
est-il possible de régler la transparence d'un panel?
Merci d'avance

8 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
Salut,

La transparence ou l'opacité comme avec les formes !?

// transparence totale
public class MyPanel : Panel
{
    public MyPanel( ) : base( )
    {
        this.SetStyle
        (
            ControlStyles.UserPaint |
            ControlStyles.SupportsTransparentBackColor,
            true
        );


        this.BackColor = Color.Transparent;
    }
}
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
à tester... c'est mis en commentaire de ma source :

public class MyPanel : Panel
{
    public MyPanel( ) : base( )
    {
        this.SetStyle
        (
            ControlStyles.UserPaint |
            ControlStyles.SupportsTransparentBackColor,
            true
        );         this.BackColor = Color.FromArgb(128,128,128,128);
    }
}

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
69
Date d'inscription
dimanche 30 octobre 2005
Statut
Membre
Dernière intervention
6 mars 2008

Bonjour,
merci pour la réponse, en fait c'est l'opacity plutôt que je cherche...
Y a t il qqchose de similaire?
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
Non je ne pense pas, l'opacité est basé sur le style WS_EX_LAYERED qui est valable uniquement pour les fenêtres pas pour les contrôles.

Mais il existe quelques astuces je crois bien..

http://www.csharpfr.com/codes/PANEL-TRANSPARENT_33676.aspx
Messages postés
69
Date d'inscription
dimanche 30 octobre 2005
Statut
Membre
Dernière intervention
6 mars 2008

Ok, merci beaucoup, finalement je vais utiliser ta première réponse en utilisant un borderStyle classique, ça me suffira pour ce que je fais, je testerais la seconde réponse,
encore merci
Messages postés
69
Date d'inscription
dimanche 30 octobre 2005
Statut
Membre
Dernière intervention
6 mars 2008

Comme c'était rapide de tester, ça a l'air de bien marcher la seconde solution, donc merci à vous sebmafate et Lutinore (j'ai cru en répondant précédemment que j'avais le même interlocuteur désolé :) )
Bonne journee
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
Oui j'ai vu mais si j'ai bien compris ta source fait de la vraie transparence, on voit un control si il est place en dessous, ce qui ne semble pas être le cas là ?

Par contre avec une valeur alpha on se retrouve avec les contrôles enfants du panel eux aussi transparents, je sais pas si c'est possible avec ta source ?
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
Lutinore, en fait, ma source fait la même chose que la réponse que j'ai donné plus... car, je peints le fond du panel avec une couleur ayant une composant alpha < 255... par contre, comme tu le précises ici, ma solution n'a pas d'effet de bord... les composants que l'on dépose ne deviennent pas transparent.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]