本文配套源码
昨天一朋友问到Windows窗体中图片透明的问题,刚上网看看了,在CodeProject上看到了这篇文章, 觉得写的不错,再者自己一直想学学翻译技术文章,所以就将其翻译成了中文,希望能给大家带来点帮 助。
申明:初次翻译此类文章,属处女作,难免有不对之处,欢迎大家拍砖指教!^_^
OK ,开始正文……
引言——没有透明度的Windows窗体
如果你制作 一些包括图片和标签的复杂的窗体,你可能会发现:Windows窗体不支持真正的透明。你可能撕裂了你的 头皮了——但仍没有解决!
即使,你在图片或标签的BackColor属性上使用了透明值 来控制,但结果是:你仍然发现不能使其透明。那么,这是为什么呢?为什么明明设置成透明了,却没 有透明呢?到底都发生了些什么呢?
实际上,当你在BackColor属性上设置透明值来控制的时候 ,只是将其背景设置成与父窗体——Windows窗体一样的背景而已,并没有真正的透明!所以 当它们重叠放在一起的时候你仍然会发现它们相互之间并没有透明,如下图所示:
在本文中, 我们将向你展示一个简单的方法来使得标签的后面图片作为背景,并如何使图片和文字真正的变成透明 。
如何制作透明标签
使图片作为背景而标签或文字在其前面进行显示是否真的很容易?
在下面,我们将讲解如何使标签的背景透明。
有二种方法,你可以使用它来很标签的背 景透明(其实有更多的方法可以做到这一点,但是我们只去谈论较为简单些的):
1.通过设 置Panel的BackGroundImage属性,并且将标签Lable放到它的里面
2.将Lable的父窗体设置成 PictureBox(label.Parent = pictureBox)
这样,我们将不需要编写任何的代码,并且我们可 以在设计器里马上看到其透明的效果: