// Paint le fond avec un gris clair
SolidBrush BackBrush = new SolidBrush(Color.Gainsboro);
e.Graphics.FillRectangle(BackBrush, this.ClientRectangle);
RectangleF rectTop = new RectangleF( 0,0, this.ClientRectangle.Width,this.ClientRectangle.Height/2);
RectangleF rectBottom = new RectangleF(0, this.ClientRectangle.Height / 2, this.ClientRectangle.Width, this.ClientRectangle.Height / 2);
// Crée les pinceaux, l'effet est obtenu avec 3 dégradés de la couleur sélectionnée
// On joue surtout sur la composante alpha pour gérer la couleur.
LinearGradientBrush loBrushTop = new LinearGradientBrush(rectTop,
Color.FromArgb(50, BackColor),
Color.FromArgb(160, BackColor),
LinearGradientMode.Vertical);
SaumonAgile
Messages postés1Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention 4 novembre 2008 4 nov. 2008 à 17:36
Pour ceux qui sont intéressés, ce composant fait partie d'une suite plus complète intégrée dans un contrôle nommé InformationBox. Ce contrôle est disponible sur CodePlex : http://www.codeplex.com/infobox/
cs_flodef
Messages postés5Date d'inscriptiondimanche 31 août 2003StatutMembreDernière intervention 4 novembre 2008 4 nov. 2008 à 16:41
12 sept. 2009 à 14:34
comme ceci:
/// <summary>
/// On change le fond du label uniquement
/// </summary>
///
protected override void OnPaintBackground(PaintEventArgs e)
{
if ((Height - 3) / 2 <= 0 || Width <= 0) return;
// Paint le fond avec un gris clair
SolidBrush BackBrush = new SolidBrush(Color.Gainsboro);
e.Graphics.FillRectangle(BackBrush, this.ClientRectangle);
RectangleF rectTop = new RectangleF( 0,0, this.ClientRectangle.Width,this.ClientRectangle.Height/2);
RectangleF rectBottom = new RectangleF(0, this.ClientRectangle.Height / 2, this.ClientRectangle.Width, this.ClientRectangle.Height / 2);
// Crée les pinceaux, l'effet est obtenu avec 3 dégradés de la couleur sélectionnée
// On joue surtout sur la composante alpha pour gérer la couleur.
LinearGradientBrush loBrushTop = new LinearGradientBrush(rectTop,
Color.FromArgb(50, BackColor),
Color.FromArgb(160, BackColor),
LinearGradientMode.Vertical);
LinearGradientBrush loBrushMiddle = new LinearGradientBrush(rectBottom,
Color.FromArgb(190, BackColor),
Color.FromArgb(210, BackColor),
LinearGradientMode.Vertical);
e.Graphics.FillRectangle(loBrushTop, rectTop);
e.Graphics.FillRectangle(loBrushMiddle, rectBottom);
}
4 nov. 2008 à 17:36
4 nov. 2008 à 16:41