c# - 有没有办法用 ToolboxBitmap 实现真正的透明度?

标签 c# visual-studio-2010 .net-4.0 user-controls toolbox

我正在使用 Paint.NET 为我的用户控件创建图标。我想要适当的透明度,例如 32 位 PNG 或 BMPX提供。有办法实现吗?查看工具箱,常规的Label控件似乎确实使用了完全透明的图标(除非MS假设工具箱背景始终为白色?)。

目前,我将我的图标嵌入为编译为嵌入资源的位图,并使用 ToolboxBitmapAttribute(Type, String)构造函数。我尝试使用 ICO 或 PNG 或 BMPX,但这些都不起作用,它们甚至都不会显示,而简单的 BMP 确实会显示(使用左下角像素颜色作为透明颜色)。

最佳答案

内置的 Winforms 工具箱位图使用 Color.Fuchsia 作为背景颜色。作为 Bitmap.MakeTransparent() 颜色,这是一个相当标准的选择,它是一种漂亮的颜色,不太可能导致图像其余部分出现意外的透明度。下面是从 System.Windows.Forms.dll 程序集中检索的 Label 控件:

enter image description here

上传的时候变成了PNG,实际上是BMP。

关于c# - 有没有办法用 ToolboxBitmap 实现真正的透明度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6357557/

相关文章:

.net - 在应用程序配置中找不到连接名称 'LocalSqlServer' 或连接字符串为空

.net-4.0 - 无法解析使用可移植类库的程序集

c# - 构建全双工客户端/服务器软件时应该从哪里开始?

c# - "sample"在探查器中代表多少秒?

c#:与文件扩展名关联的图标

visual-studio - Visual Studio : which setting to change for Find Next results in text editor?

c# - 如何在 .NET 4.0 中请求超时或取消之前为 "sleep"

c# - 在 void 方法中使用 return 是不好的做法吗?

visual-studio-2010 - Visual Studio C++/CLI 201 0's Intellisense doesn' 工作;还有其他选择吗?

c++ - sprintf_s 在 Release模式下失败,在 Debug模式下正常