|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Dégradé Backcolor ? [ Windows / Formulaire / Winforms / Controls ] (ansizak)
Informations & options pour cette discussion
mercredi 12 novembre 2008 à 10:45:14 |
Dégradé Backcolor ?

ansizak
|
Bonjour, Je n'ai pas réussi à appliquer un dégradé à la propriété backcolor d'un control: LinearGradientBrush b = new LinearGradientBrush(new Point(0, 0), new Point(60, 20), Color.Gray, Color.White); Graphics g = paneltest.CreateGraphics(); g.FillRectangle(b, 0, 0, paneltest.Width, paneltest.Height);Pourriez vous m'aiguiller ? Merci d'avance, Anz.
|
|
|
mercredi 12 novembre 2008 à 10:55:58 |
Re : Dégradé Backcolor ?

LordOfTheShadow
|
La propriété BackColor ne prend pas de dégradé en paramètre à moins de réécrire dessus (override) mais ça te sera compliqué et couteux. Le mieux c'est de créer ta propre propriété et de supprimer celle de ton control enfin mettre browsable à false. La connaissance est la plus grande des richesses.
|
|
|
mercredi 12 novembre 2008 à 10:57:06 |
Re : Dégradé Backcolor ?

LordOfTheShadow
|
Je l'ai déjà en VB, si tu veux je peux te l'envoyer ce soir, la je suis au boulot. La connaissance est la plus grande des richesses.
|
|
|
mercredi 12 novembre 2008 à 10:59:51 |
Re : Dégradé Backcolor ?

ansizak
|
Je te remercie, je veux bien voir ta propriété vb :)
Je regarderais ce soir.
Merci, Cordialement, Anz
|
|
|
mercredi 12 novembre 2008 à 11:24:16 |
Re : Dégradé Backcolor ?

WishhhMaster
|
Salut,
Pour créer un dégradé, tu dériver une nouvelle classe de ton controle et surcharger onPaintBackground:
class MyGradientPanel:Panel {
Color _color1 = Color.Blue; Color _color2 = Color.White;
protected override void OnPaintBackground(PaintEventArgs e) { base.OnPaintBackground(e); Graphics g = e.Graphics; g.FillRectangle(Brushes.White, ClientRectangle);
Brush linearGradientBrush = new LinearGradientBrush(new Point(0,0), new Point (60, 20), _color1, _color2); g.FillRectangle(linearGradientBrush, new Rectangle(0, 0, this.Width, this.Height));
linearGradientBrush.Dispose(); } }
|
|
|
mercredi 12 novembre 2008 à 11:35:04 |
Re : Dégradé Backcolor ?

ansizak
|
Hum, merci à toi, je ne suis pas familier des methode de dérivation... J'ai essayé ta méthode, et j'obtiens, une erreur "monProjet contient deja une définition pour paneltest"
|
|
|
mercredi 12 novembre 2008 à 11:42:36 |
Re : Dégradé Backcolor ?

WishhhMaster
|
Ton erreur vient du fait que tu déclare 2 fois paneltest. Cherche où (ça n'est pas référencé dans le code que je t'ai donné) Sinon, essaye d'ajouter la classe de mon message d'avant à ton projet. Puis après sur ta form, ajoute un panel
MyGradientPanel pnl = new MyGradientPanel(); this.Controls.add(pnl); pnl.Location = ... pnl.Size = ..
Normalement tu devrais avoir le panel avec un dégradé :)
|
|
|
mercredi 12 novembre 2008 à 12:43:10 |
Re : Dégradé Backcolor ?

ansizak
|
Hmm.. ok je vois. Si je procède en créant ton panel MyGradientPanel auquel j'ajoute mon dégradé et qu'ensuite je fais ceci: paneltest.BackColor = MyGradientPanel.BackColor aurais-je le dégradé transposé sur mon panel ?
|
|
|
mercredi 12 novembre 2008 à 14:29:29 |
Re : Dégradé Backcolor ?

ansizak
|
En attendant de meiux comprendre les méthodes override, j'ai essayé ceci:
LinearGradientBrush lgb = new LinearGradientBrush(panel6.ClientRectangle, Color.Black, Color.White, LinearGradientMode.Vertical); panel6.CreateGraphics().FillRectangle(lgb, panel6.ClientRectangle); panel6.Refresh();
Cela devrait en théorie fonctionner, or non...
|
|
|
mercredi 12 novembre 2008 à 19:35:56 |
Re : Dégradé Backcolor ?

LordOfTheShadow
|
Alors voila ce que j'ai refais rien que pour toi parce que je le trouvai plus. Tu peux essayer ça sur un nouveau UserControl juste pour tester avant: using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; //A RAJOUTER: using System.Drawing.Drawing2D;
namespace degraderRectangle { publicpartialclassUserControl1 : UserControl { privateColor couleurUn; privateColor couleurDeux;
public UserControl1() { InitializeComponent(); }[ Category("MesProprietes"), Browsable(true), Description("Obtient ou d,finit le d,grad, du control.")] publicColor CouleurUn { get { return couleurUn; } set { couleurUn = value; this.Refresh(); //On lance la proc,dure OnPaint en rafra¼chissant. } }[ Category("MesProprietes"), Browsable(true), Description("Obtient ou d,finit le d,grad, du control.")] publicColor CouleurDeux { get { return couleurDeux; } set { couleurDeux = value; this.Refresh(); //On lance la proc,dure OnPaint en rafra¼chissant. } }
protectedoverridevoid OnPaint(PaintEventArgs args) { Rectangle rect = newRectangle(newPoint(0,0),this.Size); LinearGradientBrush b = newLinearGradientBrush(newPoint(0, 0), newPoint(this.Size.Width, this.Size.Height), CouleurUn, CouleurDeux); args.Graphics.FillRectangle(b, rect); } } }//J'ai mis un peu de temps à le refaire lol mais bon si ça peut t'aider... La connaissance est la plus grande des richesses.
|
|
|
Cette discussion est classé dans : backcolor, color, dégradé, lineargradientbrush, paneltest
Répondre à ce message
Sujets en rapport avec ce message
conversion string en color [ par thebigboss ]
Salut,voilà j'aimerai sauvegarder l'apparence de mon projet dans un fichier .ini. J'y suis arrivé grace à une class récupérée sur le forum (merci).Le
Couleur des ColumnHeader dans un DataGridView [ par egwene ]
Salut,j'essaie de formater un dataGridView et j'ai l'impression qu'il est impossible de changer la couleur (BackColor et ForeColor) des cellules d'ent
Dégradé sur Label [ par cybers7119 ]
Bonjour,Je travaille actuellement en C# sur l'élaboration d'une IHM.Je souhaiterais effectuer un dégradé sur le fond
dégradé [ par cudenetf ]
Bonjour,j'aimerais faire un dégradé animé,par exemple sur un panel.J'ai donc une fonction qui peint le degradé Paint( Lineargradient brush ....) et j
Ajouter une colonne à un datagrid [ par adressprov ]
Voila j'ai déjà poster sur le site d'asp.fr qui m'on renvoyait ici, donc je repose ma question. Voila j'aimerais rajouter une colonne à mon DataGrid
Equivalent Handles (vb) en Csharp ? [ par ansizak ]
Bonjour,Je souhaite effectuer un dégradé sur un de mes panels en m'inspirant du code vb 2005 suivant:[..] toolstrip2_paint(ByVal sender As System.Obje
Propriétés et Control personnalisé [ par Claudebf ]
Salut à tous------------ Je rencontre deux problèmes liés lors de la conception d'un control personnalisé. Le premier est celui-ci : J'ai des couleurs
texture et texte [ par DIMUSERS ]
Bonjour à tous, Je rame sur un problème de transparence (c#, direct3D) - Le projet : faire défiler 4 à 5 lignes de texte horizontalement. - Les contra
XAML Modifier ResourceDictionary dans le code csharp [ par mfabio1902 ]
Bonjour,je débute XAML et je dois modifier en cliquant sur un bouton la couleur de fond (dégradé) de toutes mes fenetres.Toutes mes fenetres ont comme
Changer la propriété BackColor d'un controle avec une couleur perso [ par Makia ]
Bonjour à tous et voici mon souci ^^J'ai une application qui récupère en permanence la couleur que pointe la souris ( il en ressort un objet de type C
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|