C#控件背景透明的几种解决方案
2015-01-17 12:30
453 查看
已经很少做winform程序了,最新参与了一个小项目,遇到了控件背景透明的功能要求,特在此总结一下,供有需要的同行参考。
0、背景透明的概念和分类
背景透明是啥意思呢,就是背景透明。哈哈,废话了。其实你想过没有,要求不一样,实现的难道和技术手段也不一样。
最基本的就是不显示控件自己的背景,那,那显示谁的背景?
背景透明后,透过去显示谁,也就是说后面的谁不透明,这是问题的关键,换句话说,透明控件的parent是一个还是多个。
1、简单的背景透明,parent是一个的情况
a、自然透明,如图label1
实现:把控件背景色设置成窗口背景色
b、需要把picture设为parent才能透明的label2
实现:this.label2.Parent = this.pictureBox1;
c、本身就是label,只不过设置了Image属性,相当于加了背景图,自然也背景透明
this.label3.Image = Image.FromFile("xfb.jpg");
d、普通的label是不能跨控件透明的
小结:对于背景是单一控件来说,背景透明都好实现,但是对背景是多对象来说说,要实现背景透明就比较难。
2、背景是多个控件背景的透明
说实话,很少有这种要求,更多的,是下面第三中情况。
3、透明文字,半透明背景,最后后的背景任意
这个效果类似于千千静听的桌面歌词,文字背景是全透明的,可以设置一个带颜色和透明度的背景。
其实实现很简单,原理就是用了两个窗口,文字是一个透明窗口,带颜色和透明度的背景是一个打底窗口,应用的时候把这两个窗口的不要的属性都去掉,如边框,状态栏图标等,最后就是设置好两个窗口的大小和位置以及层级关系就Ok了。
文字窗口背景透明this.TransparencyKey = this.BackColor; 显示文字 直接在 paint事件中drawstring
带颜色和透明度背景窗口:直接用 backcolor 和 Opacity
0、背景透明的概念和分类
背景透明是啥意思呢,就是背景透明。哈哈,废话了。其实你想过没有,要求不一样,实现的难道和技术手段也不一样。
最基本的就是不显示控件自己的背景,那,那显示谁的背景?
背景透明后,透过去显示谁,也就是说后面的谁不透明,这是问题的关键,换句话说,透明控件的parent是一个还是多个。
1、简单的背景透明,parent是一个的情况
a、自然透明,如图label1
实现:把控件背景色设置成窗口背景色
b、需要把picture设为parent才能透明的label2
实现:this.label2.Parent = this.pictureBox1;
c、本身就是label,只不过设置了Image属性,相当于加了背景图,自然也背景透明
this.label3.Image = Image.FromFile("xfb.jpg");
d、普通的label是不能跨控件透明的
小结:对于背景是单一控件来说,背景透明都好实现,但是对背景是多对象来说说,要实现背景透明就比较难。
2、背景是多个控件背景的透明
说实话,很少有这种要求,更多的,是下面第三中情况。
3、透明文字,半透明背景,最后后的背景任意
这个效果类似于千千静听的桌面歌词,文字背景是全透明的,可以设置一个带颜色和透明度的背景。
其实实现很简单,原理就是用了两个窗口,文字是一个透明窗口,带颜色和透明度的背景是一个打底窗口,应用的时候把这两个窗口的不要的属性都去掉,如边框,状态栏图标等,最后就是设置好两个窗口的大小和位置以及层级关系就Ok了。
文字窗口背景透明this.TransparencyKey = this.BackColor; 显示文字 直接在 paint事件中drawstring
带颜色和透明度背景窗口:直接用 backcolor 和 Opacity
相关文章推荐
- C#控件背景透明的几种解决方案
- C# winfrom中Flash播放使用axShockwaveFlash控件设置透明XP出现白色背景解决办法,仿QQ魔法表情效果
- 关于C#窗体的半透明,控件不透明的解决方案
- C# WinForm中控件与背景透明
- 实现控件背景透明的几种方法
- C#重写控件使其透明背景
- 实现控件透明背景的几种方案
- C#学习笔记:设置label(标签)控件的背景颜色为透明
- C# 解决panel或者其他控件叠加时,此控件背景透明,显示的背景色为窗体背景色问题
- C#设置label(标签)控件的背景颜色为透明
- c#创建透明背景用户控件
- C# WinForm中控件与背景透明+c# linklabel 去掉下划线的方法
- C#绘制半透明窗体,只让窗体背景半透明,而窗体里面的控件不透明
- Static控件背景透明时文字覆盖问题的解决方案
- C#中如何使PicturesBox控件上的Label控件背景透明
- html 控件/元素 透明与背景透明
- VC中设置了对话框背景图片的情况下不能正确显示radio控件透明
- VS2005 C# WEB swf 文件背景透明
- 设置CEdit控件背景为透明 C++ MFC
- 如何使STATIC控件的背景透明以及动态改变控件文本内容时闪烁的问题