使用CDI+制作支持半透明的Panle
2024-10-21 14:36:37
创建一个自定义控件程序集,并修改父类为Panle,添加如下代码:
public partial class OpaqueLayer : Panel
{
private Color transparentBC = Color.SkyBlue; [Description("设置透明背景颜色")]
public Color TransparentBC
{
get
{
return transparentBC;
}
set
{
transparentBC = value;
this.Invalidate();
}
} //透明度
private int alpha = ; [Description("设置透明度(0-255)")]
public int Alpha
{
get { return alpha; }
set
{
if (value < )
{
value = ;
}
else if (value > )
{
value = ;
} alpha = value;
this.Invalidate();
}
} public OpaqueLayer()
{
InitializeComponent();
//设置参数,使支持半透明、缓存、自行绘制
SetStyle(ControlStyles.Opaque | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);
} /// <summary>
/// 自定义绘制窗体
/// </summary>
/// <param name="e"></param>
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics; //获得绘图面板
Color drawColor = Color.FromArgb(Alpha, TransparentBC);
SolidBrush backColorBrush = new SolidBrush(drawColor);
g.FillRectangle(backColorBrush, , , Width, Height);//绘制半透明
} //该参数封装创建控件时所需的信息,必须重写该参数,以支持透明
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x20; // 开启 WS_EX_TRANSPARENT,使控件支持透明
return cp;
}
}
}
最新文章
- 2014 Multi-University Training Contest 9#11
- Redis 3.2.100 Windows 32位下载
- 13年省赛-B题-连通分量
- Junit单元测试学习笔记三
- 利用CSS3打造一组质感细腻丝滑的按钮
- .net程序员求职简历
- Servlet.service() for Servlet jsp threw exception javax.servlet.ServletException:File &;quot;/pageFoo
- UML类图简介
- 详解 OneAlert 排班可以帮你做什么
- word2vec原理(一) CBOW与Skip-Gram模型基础——转载自刘建平Pinard
- as3.0视频的快进有拖动条
- NPOI读取excel文件导出数据, 而此时文件正在打开中抛异常怎么办
- Mysql 5.7源码编译启动 报error问题:The server quit without updating PID file (/data/data_mysql/mysql.pid).
- Java的数组和list升序,降序,逆序函数Collections.sort和Arrays.sort的使用
- Ubuntu安装Nginx 问题以及解决办法
- pandas 的Series 里经常会出现DatetimeIndex这个类
- xml获取属性值的方法
- MVC 控制器中直接访问url 的方式
- AOJ.859 地毯填补问题 (递归与分治)
- SOE不能进入断点调试
热门文章
- linux下mysql的安装配置
- 图像特征与描述子(直方图, 聚类, 边缘检测, 兴趣点/关键点, Harris角点, 斑点(Blob), SIFI, 纹理特征)
- 【常见CPU架构对比】维基百科
- 对avalon的类名操作进行升级
- docker 网络配置路由转发
- MonoBehaviour.OnValidate
- CHEMISTS DISCOVER A SAFE, GREEN METHOD TO PROCESS RED PHOSPHORUS
- ORA-01795: maximum number of expressions in a list is 1000
- Linux汇编与C互相调用
- 在 macOS 中激活 Astash Professional