GlassLabel est un contrôle .NET 2.0 permettant de créer un label avec un fond de type Glass à la Vista, c'est un label amélioré pour tout ceux qui veulent mettre un peu de fantaisie dans leur applications. Le contrôle possède les propriétés d'un Label (vu que c'est un label), c'est surtout le fond qui change.
// 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);
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/
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);
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.