begin process at 2012 02 11 10:32:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

UserControl

 > 

Backcolor et transparence


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Backcolor et transparence

samedi 22 novembre 2008 à 19:32:27 | Backcolor et transparence

LordOfTheShadow

Bonsoir,

J'ai fait un usercontrol sur lequel je dessine sur une petite partie seulement grâce à lévènement Onpaint. Le reste de mon composant je lui met la couleur Transparent en BackColor ce qui fait que la partie où je ne dessine pas est transparente. Après...lorque j'utilise ce composant sur un formulaire, je dois le mettre à cheval sur un autre composant (ex: PictureBox avec un fond bleu). Mon problême c'est que la transparence montre la couleur de fond du formulaire et non le fond de la picturebox. Si quelqu'un pourrait me donner un code ou alors un peu d'aide je le remercierai bien. A bientot.

La connaissance est la plus grande des richesses.

samedi 22 novembre 2008 à 21:28:12 | Re : Backcolor et transparence

Lutinore

Administrateur CodeS-SourceS

Salut.. c'est plus simple avec un Control qu'un UserControl :

 

public partial class Form1 : Form
{
    private class MyControl : Control
    {
        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cp = base.CreateParams;
                cp.ExStyle |= 0x00000020; // WS_EX_TRANSPARENT;
                return cp;
            }
        }

        protected override void OnPaintBackground( PaintEventArgs args )
        {
            //base.OnPaintBackground( args );

            Graphics g = args.Graphics;
            Rectangle r = this.ClientRectangle;
            g.DrawRectangle( Pens.Black, new Rectangle( 0, 0, r.Width - 1, r.Height - 1  ) );
            g.FillRectangle( new SolidBrush( Color.FromArgb( 128, Color.Red ) ), r );
        }
       
    }

    public Form1( )
    {
        InitializeComponent( );

        PictureBox pb = new PictureBox( );
        pb.Size = new Size( 100, 100 );
        pb.BackColor = Color.AliceBlue;
        pb.BorderStyle = BorderStyle.FixedSingle;

        MyControl mc = new MyControl( );
        mc.Size = new Size( 100, 100 );
        mc.Location = new Point( 50, 50 );

        this.Controls.AddRange( new Control[ ] { mc, pb } );
    }
}

dimanche 23 novembre 2008 à 19:31:51 | Re : Backcolor et transparence

LordOfTheShadow

Si je comprends bien tu surchages (=overrride?) la méthode onPaint qui est herité de la classe mère? Je vais eesayer dès demain soir car là j'ai les yeux qui me piquent à mort . Merci à toi Lutinore.

La connaissance est la plus grande des richesses.

mercredi 26 novembre 2008 à 11:50:02 | Re : Backcolor et transparence

LordOfTheShadow

Désolé Lutinore ça ne marche pas...Heu je fais un usercontrol et non un control car je suis obligé. J'ai cherché et trouvé des aides mais sans résultat probant (transparencyKey(affiche le form et non le picture box en dessous), makeTransparent (que sur les bitmaps...) et Opacity (rend transparent mais le résultat est pareil que sur transparencyKey et en plus cette propriété n'existe pas dans un usercontrol mais sur le form uniquement).

La connaissance est la plus grande des richesses.

mercredi 26 novembre 2008 à 14:27:56 | Re : Backcolor et transparence

Lutinore

Administrateur CodeS-SourceS
Réponse acceptée !

Modifié pour un UserControl, tu peux voir le résultat >ici<

private class MyControl : UserControl
{
    public MyControl( ) : base( )
    {
        this.SetStyle( ControlStyles.UserPaint |
            ControlStyles.AllPaintingInWmPaint, true );
    }

    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= 0x00000020; // WS_EX_TRANSPARENT;
            return cp;
        }
    }

    protected override void OnPaintBackground( PaintEventArgs args )
    {
        //base.OnPaintBackground( args );

        Graphics g = args.Graphics;
        Rectangle r = this.ClientRectangle;
        g.DrawRectangle( Pens.Black, new Rectangle( 0, 0, r.Width - 1, r.Height - 1  ) );
        g.FillRectangle( new SolidBrush( Color.FromArgb( 128, Color.Red ) ), r );
    }
}



Cette discussion est classée dans : composant, fond, dessine, transparence, backcolor


Répondre à ce message

Sujets en rapport avec ce message

DirectX (D3D) transparence [ par clemox ] Bonsoir :)  Ceux qui fond du directX ont pu se rendre compte que directdraw va bientôt disparaître du SDK ... C'est pourtant bien pratique pour faire Transparence partielle (Form.BackColor = Color.Transparent) [ par DarkenerDaemonEx ] Bonjour, j'ai un problème avec le constructeur d'un form dont la transparence sera (ou plutôt, devra être) partielle et différente "pour chaque pixel" DrawEllipse avec fond transparent [ par babou6a ] Bonjour,j'essaye de refaire une sorte de paint. Mon programme marche bien mais avec quelques souci graphique : si je dessine un carré plein sur la zon Sauvegarder une nouvelle backcolor [ par skull3r ] Bonjour à tous, J'ai besoin de votre aide! Pour info je développe sous visual studio 2008 professionnal. Dans mon application, j'utilise des label, gérer la transparence sous WinCE 5 en c# [ par loulou2706 ] Bonjour, je développe actuellement avec visual studio 2008 professionnel une appli à déployer sous Windows CE ... Mon problème est que je n'arrive pas application flash dans c sharp [ par tarajist19 ] Bonjour à tous, Depuis quelques heures je désespère de trouver un moyen de mettre une animation Flash (.swf) dans une de mes forms. J'utilise Microsof Question pour mon projet puissance 4 ( Optimisation??) [ par dulac1804 ] Bon voila je vous expose mon problème. Je suis en train de faire Un puissance 4 en C# avec visual studio Mais j'aimerais l'optimiser car beaucoup Créer dynamiquement des composant Timer et leur associer l'évenement Tick [ par gerver ] Bonsoir, j'aimerai une petite explication sur la création dynamique de composant et l'association d'un évènement Particulièrement pour le composant T Superposition de label et transparence [ par MiniAnge ] Bonjour à tous, je suis débutante en c# et je cherche à mettre en place un graphe composé de labels. Pour ce graphe, je dispose de flèches dessinées Comment s'appelle ce composant ? [ par shoron ] Bonjour, Depuis quelques temps je recherche comment s'appelle ce composant Form : http://img100.imageshack.us/img100/8229/fenetre.png Merci.


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,967 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales