IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Transparance d'une label en c#


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de AmineDev9
    Inscrit en
    Décembre 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 193
    Points : 104
    Points
    104
    Par défaut Transparance d'une label en c#
    Bonjour,

    je suis en train de concevoir une fenêtre windows avec une image et des descriptions textuelles de celle-ci.

    J'ai donc une PictureBox sur laquelle j'ai mis des labels. J'aimerai que le fond de mes labels laissent entrevoir l'image qui se trouve en-dessous.

    merci pour vouz aides

  2. #2
    Membre confirmé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Points : 610
    Points
    610
    Par défaut
    ca peut t'aider

    et ca aussi


    google est ton ami .....

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    je dirais qu'il suffit de mettre "transparent" en backcolor des labels

    et si je dis une connerie, il suffit de mettre les labels sur le picturebox au lieu de sur la form (le faire par code dans le constructeur par exemple)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    On arrive à avoir une semi-transparence quand on crée le panel.
    Malheureusement, si ce qu'il y a en dessous se repaint (par exemple, en faisant un minimize/maximize de la forme ou un scroll), on n'a que des comportements aléatoires, genre panneau à moitié ou totalement caché ou plus transparent .
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Si ca t'interesse quand même, voici toujours le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    public class SemiTransparentPanel : Panel
    {
      internal int PaintNumber=0 ;
     
      internal static void Hide(ref SxWFSemiTransparentPanel
         ThePanel,Control ParentControl)
      {
        if (ThePanel!=null) ParentControl.Controls.Remove(ThePanel) ;
      }
     
      internal static void Show
       (ref SxWFSemiTransparentPanel ThePanel,int X, int Y, int Width, int Height, 
        Color color, int Opacity,Control ParentControl)
      {
        Hide(ref ThePanel,ParentControl) ;
        ThePanel=new SxWFSemiTransparentPanel(X,Y,Width,Height,
                                       color,Opacity,ParentControl) ;
      }
     
      internal SxWFSemiTransparentPanel
       (int X, int Y, int Width, int Height, Color color, 
       int Opacity, Control ParentControl)
      {
        SetStyle(ControlStyles.Opaque,false);   
        SetStyle(ControlStyles.SupportsTransparentBackColor,true);   
        UpdateStyles();   
        Location = new System.Drawing.Point(X, Y);
        Size = new Size(Width, Height);
        BackColor = Color.FromArgb (Opacity, color);
        if (ParentControls!=null) ParentControl.Controls.Add(this);
        BringToFront() ;
      } 
     
     
      protected override CreateParams CreateParams 
      { 
        get 
        { 
          CreateParams cp = base.CreateParams; 
          cp.ExStyle |= 0x20; // Turn on WS_EX_TRANSPARENT
          return cp;
        }
      }
     
      protected override void OnPaint (PaintEventArgs pe) 
      { // je ne me rappelle plus le pourquoi d'un maxi à 3 !!!
        if (PaintNumber<3) 
           pe.Graphics.FillRectangle(new SolidBrush (BackColor), 
                                 this.ClientRectangle);
        PaintNumber++ ;
      }
     
      }// SemiTransparentPanel
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/02/2013, 18h31
  2. textbox ou label transparent sur une diapo
    Par ayoras56 dans le forum Powerpoint
    Réponses: 4
    Dernier message: 24/09/2010, 09h32
  3. dégradé transparent sur une image
    Par Dionyzos dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/04/2005, 15h47
  4. Rendre le fond transparent dans une picturebox
    Par fun31 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/01/2005, 18h17
  5. Réponses: 1
    Dernier message: 23/02/2003, 06h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo