您的位置:首页 > 其它

Winform 创建自定义控件:使用2种半透明的颜色来填充Button

2017-04-24 15:54 393 查看
制作一个自定义按钮,使用2种半透明的颜色来填充Button

1.添加一个自定义控件类,并改变基类,继承自Button

publicpartialclassCustomControl1:Button


2.为控件创建一些自定义属性

privateColorcolor1=Color.White;//第一种颜色
publicColorColor1
{
get{returncolor1;}
set{color1=value;Invalidate();}
}
privateColorcolor2=Color.Black;//第二种颜色
publicColorColor2
{
get{returncolor2;}
set{color2=value;Invalidate();}
}
privateintcolor1Transparent=64;//第一种颜色透明度
publicintColor1Transparent
{
get{returncolor1Transparent;}
set{color1Transparent=value;Invalidate();}
}
privateintcolor2Transparent=64;//第二种颜色透明度
publicintColor2Transparent
{
get{returncolor2Transparent;}
set{color2Transparent=value;Invalidate();}
}


Invalidate()方法用于刷新设计图。

3.重写Paint事件


protectedoverridevoidOnPaint(PaintEventArgspe)
{
base.OnPaint(pe);//调用基类

//用两种半透明的颜色填充Button
Colorc1=Color.FromArgb(color1Transparent,color1);
Colorc2=Color.FromArgb(color2Transparent,color2);
Brushb=newSystem.Drawing.Drawing2D.LinearGradientBrush(ClientRectangle,c1,c2,10);
pe.Graphics.FillRectangle(b,ClientRectangle);
b.Dispose();

}


4.到这里就完成了。

完整代码:

usingSystem;
usingSystem.Windows.Forms;
usingSystem.Drawing;

namespacectlCuteButton
{
publicpartialclassCustomControl1:Button
{

privateColorcolor1=Color.White;//第一种颜色
publicColorColor1
{
get{returncolor1;}
set{color1=value;Invalidate();}
}
privateColorcolor2=Color.Black;//第二种颜色
publicColorColor2
{
get{returncolor2;}
set{color2=value;Invalidate();}
}
privateintcolor1Transparent=64;//第一种颜色透明度
publicintColor1Transparent
{
get{returncolor1Transparent;}
set{color1Transparent=value;Invalidate();}
}
privateintcolor2Transparent=64;//第二种颜色透明度
publicintColor2Transparent
{
get{returncolor2Transparent;}
set{color2Transparent=value;Invalidate();}
}

publicCustomControl1()
{
}

protectedoverridevoidOnPaint(PaintEventArgspe)
{
base.OnPaint(pe);//调用基类

//用两种半透明的颜色填充Button
Colorc1=Color.FromArgb(color1Transparent,color1);
Colorc2=Color.FromArgb(color2Transparent,color2);
Brushb=newSystem.Drawing.Drawing2D.LinearGradientBrush(ClientRectangle,c1,c2,10);
pe.Graphics.FillRectangle(b,ClientRectangle);
b.Dispose();

}
}
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐