protected override void OnPaint(PaintEventArgs e)
{
var G = e.Graphics;
G.SmoothingMode = SmoothingMode.HighQuality;
PointF ipt = ImageLocation(GetStringFormat(ImageAlign), Size, ImageSize);
switch (MouseState)
{
case 0:
//Inactive
G.FillPath(InactiveGB, Shape);
// Fill button body with InactiveGB color gradient
G.DrawPath(P1, Shape);
// Draw button border [InactiveGB]
if ((Image == null))
{
G.DrawString(Text, Font, new SolidBrush(ForeColor), R1, new StringFormat
{
Alignment = _TextAlignment,
LineAlignment = StringAlignment.Center
});
}
else
{
G.DrawImage(_Image, ipt.X, ipt.Y, ImageSize.Width, ImageSize.Height);
G.DrawString(Text, Font, new SolidBrush(ForeColor), R1, new StringFormat
{
Alignment = _TextAlignment,
LineAlignment = StringAlignment.Center
});
}
break;
case 1:
//Pressed
G.FillPath(PressedGB, Shape);
// Fill button body with PressedGB color gradient
G.DrawPath(P3, Shape);
// Draw button border [PressedGB]
if ((Image == null))
{
G.DrawString(Text, Font, new SolidBrush(ForeColor), R1, new StringFormat
{
Alignment = _TextAlignment,
LineAlignment = StringAlignment.Center
});
}
else
{
G.DrawImage(_Image, ipt.X, ipt.Y, ImageSize.Width, ImageSize.Height);
G.DrawString(Text, Font, new SolidBrush(ForeColor), R1, new StringFormat
{
Alignment = _TextAlignment,
LineAlignment = StringAlignment.Center
});
}
break;
}
base.OnPaint(e);
}