请问一上UserControl的OnPaint重写的有关问题
请教一下UserControl的OnPaint重写的问题
我的UserControl,问题在OnPaint事件,不解。
我的UserControl,问题在OnPaint事件,不解。
namespace 启动系统服务
{
[ToolboxBitmap(typeof(PanelAlphaEx))]
public partial class PanelAlphaEx : UserControl
{
public PanelAlphaEx()
{
InitializeComponent();
this.SetStyle(ControlStyles.Opaque, true);
this.CreateControl();
this.SetStyle(ControlStyles.ResizeRedraw, false);
}
#region 透明配置
// 属性设置
private bool _transparentBG = true;
private int _alpha = 125;
[Category("透明层设置"), Description("是否使用透明,默认为True")]
public bool TransparentBG { get { return _transparentBG; } set { _transparentBG = value; } }
[Category("透明层设置"), Description("设置透明度")]
public int Alpha { get { return _alpha; } set { _alpha = value; } }
#endregion
/// <summary>
/// 开启 WS_EX_TRANSPARENT,使控件支持透明
/// </summary>
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
//cp.ExStyle |= 0x20;
cp.ExStyle |= 0x00000020;
return cp;
}
}
protected override void OnPaint(PaintEventArgs e)
{
Color drawColor = _transparentBG ? Color.FromArgb(this._alpha, this.BackColor) : this.BackColor;
Pen penBorder = new Pen(drawColor, 0);
SolidBrush brushBgColor = new SolidBrush(drawColor);
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighSpeed;