Introduction
As all of us know GDI+ which is supported by .NET has many new features for graphics. One of them is the gradient brush. Gradient brushes can also be used to draw lines, curves, and paths. You can use a linear gradient brush to fill a shape with color that changes gradually as you move across the shape. For example, suppose you create a horizontal gradient brush by specifying blue at the left edge of a shape and green at the right edge. When you fill that shape with the horizontal gradient brush, the color changes gradually from blue to green as you move from the shape's left edge to its right edge.
I think it is very useful and so I have written a control called GLabel
that inherits from Label
control of System.Windows.Forms
. This GLabel
has backgound with gradient color. Because it is a linear gradient it needs two colors; Left color and Right color for linear gradient. When you use it on a WinForm, you should set two colors via properties BeginColor
and EndColor
of GLabel
class.
Code listing
Following is this GLabel
class:
public class GLabel : System.Windows.Forms.Label
{
private Color cLeft;
private Color cRight;
public Color BeginColor
{
get
{
return cLeft;
}
set
{
cLeft = value;
}
}
public Color EndColor
{
get
{
return cRight;
}
set
{
cRight = value;
}
}
public GLabel()
{
cLeft = SystemColors.ActiveCaption;
cRight = SystemColors.Control;
}
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
LinearGradientBrush GBrush = new LinearGradientBrush(
new Point(0, 0),
new Point(this.Width, 0), cLeft, cRight);
Rectangle rect = new Rectangle(0,0,this.Width,this.Height);
e.Graphics.FillRectangle(GBrush, rect);
SolidBrush drawBrush = new SolidBrush(this.ForeColor);
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
RectangleF rectF = new
RectangleF(0,this.Height/2-Font.Height/2,this.Width,this.Height);
e.Graphics.DrawString(this.Text, this.Font, drawBrush, rectF, sf);
}
}
This class above is simple. You can develop it to serve your ideas. You can rewrite OnPaint
as well, such as write more alignment styles for text. This code is written fixed for the top-center in rectangle (this rectangle contains rectangle of GLabel
at center). When you put GLabel
control in a WinForm you can write code as shown below:
public class Form1 : System.Windows.Forms.Form
{
private GLabel gLabel1;
private System.ComponentModel.Container components = null;
public Form1()
{
InitializeComponent();
this.gLabel1 = new GLabel();
this.gLabel1.BeginColor = System.Drawing.SystemColors.ActiveCaption;
this.gLabel1.EndColor = System.Drawing.SystemColors.Control;
this.gLabel1.Name = "gLabel1";
this.gLabel1.Font = new Font("Verdana", 12F, FontStyle.Bold );
this.gLabel1.Size = new System.Drawing.Size(350, 50);
this.gLabel1.TabIndex = 0;
this.gLabel1.Text = "Nguyen Ha Giang - Vietnam - HCMC";
this.Controls.Add(gLabel1);
}
.......
}
Conclusion
That's all, thanks a lot for reading from Nguyen Ha Giang, Vietnam, HCM City.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.