Exferia/Exferia_Controles/Exferia_Controles/Exferia_Panel_Degradado.cs

112 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Exferia_Controles
{
public partial class Exferia_Panel_Degradado : Panel
{
#region Propiedades Publicas
private Color g_crl_Color_Desde = Color.White;
public Color Exferia_Panel_Degradado_Color_Desde
{
get { return g_crl_Color_Desde; }
set
{
g_crl_Color_Desde = value;
Invalidate();
}
}
private Color g_clr_Color_Hasta = Color.White;
public Color Exferia_Panel_Degradado_Color_Hasta
{
get { return g_clr_Color_Hasta; }
set
{
g_clr_Color_Hasta = value;
Invalidate();
}
}
private Color g_clr_Color_Borde = Color.White;
public Color Exferia_Panel_Degradado_Color_Borde
{
get { return g_clr_Color_Borde; }
set
{
g_clr_Color_Borde = value;
Invalidate();
}
}
private LinearGradientMode g_lgd_TipoDegradado = LinearGradientMode.Vertical;
public LinearGradientMode Exferia_Panel_Degradado_TipoDegradado
{
get { return g_lgd_TipoDegradado; }
set
{
g_lgd_TipoDegradado = value;
Invalidate();
}
}
#endregion
public Exferia_Panel_Degradado()
{
ResizeRedraw = true;
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.ContainerControl, true);
Paint += new PaintEventHandler(Exferia_Panel_Degradado_Paint);
}
#region Eventos
private void Exferia_Panel_Degradado_Paint(object sender, PaintEventArgs e)
{
try
{
var brush = new LinearGradientBrush(ClientRectangle, Exferia_Panel_Degradado_Color_Desde, Exferia_Panel_Degradado_Color_Hasta, Exferia_Panel_Degradado_TipoDegradado);
e.Graphics.FillRectangle(brush, ClientRectangle);
}
catch (Exception)
{ }
}
protected override void OnScroll(ScrollEventArgs se)
{
Invalidate();
base.OnScroll(se);
}
protected override void WndProc(ref Message m)
{
try
{
base.WndProc(ref m);
if (m.Msg == 0xF)
{
if (BorderStyle != BorderStyle.None)
{
Graphics graph = CreateGraphics();
Pen pen = new Pen(g_clr_Color_Borde, 2.0f);
graph.DrawRectangle(pen, base.ClientRectangle);
}
}
}
catch (Exception)
{ }
}
#endregion
}
}