#region Imports
|
|
using DPumpHydr.WinFrmUI.RLT.Util;
|
using System.ComponentModel;
|
using System.Drawing;
|
using System.Drawing.Drawing2D;
|
using System.Windows.Forms;
|
|
#endregion
|
|
namespace DPumpHydr.WinFrmUI.RLT.Controls
|
{
|
#region ThunderGroupBox
|
|
public class ThunderGroupBox : ContainerControl
|
{
|
[Category("Colors")]
|
public Color BodyColorA { get; set; } = Color.FromArgb(26, 26, 26);
|
|
[Category("Colors")]
|
public Color BodyColorB { get; set; } = Color.FromArgb(30, 30, 30);
|
|
[Category("Colors")]
|
public Color BodyColorC { get; set; } = Color.FromArgb(46, 46, 46);
|
|
[Category("Colors")]
|
public Color BodyColorD { get; set; } = Color.FromArgb(50, 55, 58);
|
|
public ThunderGroupBox()
|
{
|
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
|
BackColor = Color.Transparent;
|
ForeColor = Color.WhiteSmoke;
|
DoubleBuffered = true;
|
Size = new(132, 100);
|
}
|
|
protected override void OnPaint(PaintEventArgs e)
|
{
|
Bitmap B = new(Width, Height);
|
Graphics G = Graphics.FromImage(B);
|
Rectangle Body = new(4, 25, Width - 9, Height - 30);
|
Rectangle Body2 = new(0, 0, Width - 1, Height - 1);
|
base.OnPaint(e);
|
G.Clear(Color.Transparent);
|
G.SmoothingMode = SmoothingMode.HighQuality;
|
G.CompositingQuality = CompositingQuality.HighQuality;
|
|
Pen P1 = new(Color.Black);
|
LinearGradientBrush BodyBrush = new(Body2, BodyColorA, BodyColorB, 90);
|
LinearGradientBrush BodyBrush2 = new(Body, BodyColorC, BodyColorD, 120);
|
Font drawFont = new("Tahoma", 9, FontStyle.Bold);
|
G.FillPath(BodyBrush, DrawThunder.RoundRect(Body2, 3));
|
G.DrawPath(P1, DrawThunder.RoundRect(Body2, 3));
|
|
G.FillPath(BodyBrush2, DrawThunder.RoundRect(Body, 3));
|
G.DrawPath(P1, DrawThunder.RoundRect(Body, 3));
|
|
G.DrawString(Text, drawFont, new SolidBrush(ForeColor), 67, 14, new StringFormat() { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
|
e.Graphics.DrawImage((Image)B.Clone(), 0, 0);
|
G.Dispose();
|
B.Dispose();
|
}
|
}
|
|
#endregion
|
}
|