WinForm 控件实现半透明效果,并可层叠显示

来源:互联网 发布:项目性能优化 编辑:程序博客网 时间:2024/05/29 09:34

啥不说,先看效果


其中 直线,矩形,圆和五角星,是自定义的透明控件


其实主要代码很简单,就是设置就是重写控件的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吧!

下载源码

原创粉丝点击