2011-06-15 97 views
2

我使用Paint.NET为我的usercontrols创建图标。我想有适当的透明度,如32位PNG或BMPX规定。有没有办法实现这一点?看看这个工具箱,常规的Label控件似乎使用了一个完全透明的图标(除非MS假设总是白色的工具箱背景?)。有没有办法通过ToolboxBitmap实现真正的透明度?

目前我正在将我的图标嵌入到编译为嵌入资源的位图中,并使用ToolboxBitmapAttribute(Type, String)构造函数。我尝试使用ICO或PNG或BMPX,但没有任何工作,他们甚至没有显示,而简单的BMP显示(使用左下角的像素颜色作为透明颜色)。

+0

*真实*透明度?不,但如果你使用位图,伪造的透明工作得很好。汉斯解释了下面的所有细节。 – 2011-06-15 13:27:42

+0

谢谢。可惜,在过去的几个月中,我逐渐认识到PDN的抗滥用能力。 – takrl 2011-06-15 13:49:12

回答

3

内置的Winforms工具箱位图使用Color.Fuchsia作为背景颜色。作为Bitmap.MakeTransparent()颜色的一个非常标准的选择,它是一种很好的融合颜色,不会在图像的其余部分导致意外的透明度。下面是一个Label控件,从System.Windows.Forms.dll程序检索:

​​

它得到变成了PNG,同时上传,它实际上是一个BMP。

+0

谢谢。我不知道如何从System.Windows.Forms中提取原始图像,否则我可能会先检查它。我记得VB6时代的那种颜色,当时它也用于相同的目的。 – takrl 2011-06-15 13:50:33

相关问题