2010-06-16 69 views
4

我对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

我刚刚找到答案,至少对我的具体情况。

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

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

1

我遇到了这个问题,将表单的IsMdiContainer属性更改为false可以解决此问题。

+0

谢谢,但它看起来像需要留一个MDI容器。游民。 – Sean 2010-06-16 21:55:15