Kiripa

做一条永不翻身的咸鱼

C# Winform 变相实现背景透明

C# Winform 变相实现背景透明

本人在写一个C# Winform项目时,窗体背景使用了背景图,但是窗体上的部分控件不支持背景透明,这样显得有些不好看,然后在Google时发现如下变相实现背景透明的方法。

但是有几点使用要求:
A. 主窗体或父容器等使用了背景图
B. 需要透明的控件支持背景图
C. 可能还有其他要求,暂未发现


实现代码

// 以下代码中,frm为主窗体,lv为需要透明的空间

// 封装一个图像对象,该对象即主窗体或父容器背景图片
Bitmap bmp = new Bitmap(this.BackgroundImage, this.Width, this.Height);

// 绘制矩形,定义你需要截取的图像起始位置和宽高
Rectangle r = new Rectangle(lv.Left, lv.Top, lv.Width, lv.Height);

// 按矩形尺寸和起始位置截取bm的一部分
bmp = bmp.Clone(r, System.Drawing.Imaging.PixelFormat.Undefined);

// 把截取到的图片设置为需要透明的控件背景,达到与主窗体背景完美契合的效果
lv.BackgroundImage = bmp;

如果是不支持背景透明的控件的话,那就用GDI+吧

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_19527641/article/details/52369238
下一篇C# 调用APlayer教程
想对作者说点什么? 我来说一句

winform panel控件背景透明

2014年07月24日 937KB 下载

没有更多推荐了,返回首页

关闭
关闭