啥不说,先看效果
其中 直线,矩形,圆和五角星,是自定义的透明控件
其实主要代码很简单,就是设置就是重写控件的CreateParams 属性,使之背景透明
public class CYBaseControl : Control
{
public CYBaseControl()
{
this.SetStyle(ControlStyles.SupportsTransparentBackColor |
ControlStyles.Opaque, true);
this.BackColor = Color.Transparent;
}
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle = 0x20;
return cp;
}
}
}
已知问题:该类控件无法启用双缓冲,所以不适合做动态效果,闪烁会很严重;层叠控件时绘制顺序会乱掉,可能是我绘制绘制控件的时候没有做判断顺序的原因
想用好的动态效果还是有关WPF吧!