构建将部分透明图像像素变为黑色

时间:2010-06-16 20:27:41

标签: c# visual-studio image png transparency

我是C#的新手,我遇到了一个问题而无法解决问题。我有一排按钮,分配了.png图像。图像采用.png格式以允许透明度,并且平滑GIMP中的边缘会留下一些半透明像素。我已将图像列表工具栏(imglToolbar)的属性设置为将“透明”识别为指定的颜色以显示为透明。我在Visual Studio 2005中工作。

奇怪的是,当我查看Visual C#表单预览窗口时,一切看起来都很棒。图标看起来完全正确。但是,一旦我实际构建了项目,按钮就会将图像边缘附近的每个半透明像素视为黑色。它似乎无法处理既透明又有颜色的那个。

通过Visual C#表单编辑器的图像:

alt text http://img5.imageshack.us/img5/2577/whatiwanted.jpg

构建时的图像:

alt text http://img690.imageshack.us/img690/7241/whatigot.jpg

有关为何发生这种情况的任何想法?

2 个答案:

答案 0 :(得分:2)

我刚刚找到了答案,至少在我的具体情况下。

我正在处理的表单是顶级MDI容器。无论出于何种原因,将图标设置为32位颜色都不允许正确解释这些半透明像素。将其设置为24位,一时兴起,完全解决了问题。不确定这是否是由于一些看不见的因素而出现的情况,但颜色深度变化解决了我的问题。

对于那些可能遇到类似问题的人,请确保该窗口不是MDI容器的子级。在查找信息时,我发现MDI孩子根本不支持TransparencyKeys。

答案 1 :(得分:1)

我也遇到了这个问题;将表单的IsMdiContainer属性更改为false解决了它。