Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 构建将部分透明的图像像素变为黑色_C#_Visual Studio_Image_Png_Transparency - Fatal编程技术网

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

C# 构建将部分透明的图像像素变为黑色,c#,visual-studio,image,png,transparency,C#,Visual Studio,Image,Png,Transparency,我对C#很陌生,遇到了一个问题,一直没能解决。我有一行按钮,它们都有.png图像。图像采用.png格式以允许透明,并且在GIMP中平滑边缘会留下一些半透明像素。我已将图像列表工具栏(imglToolbar)的属性设置为将“透明”识别为指定颜色以显示为透明。我在VisualStudio2005工作 奇怪的是,当我查看Visual C#form预览窗口时,一切看起来都很棒。图标看起来与它们应该的完全一样。然而,一旦我实际构建了项目,按钮就会将图像边缘附近的每个半透明像素视为黑色。它似乎不能处理一个既

我对C#很陌生,遇到了一个问题,一直没能解决。我有一行按钮,它们都有.png图像。图像采用.png格式以允许透明,并且在GIMP中平滑边缘会留下一些半透明像素。我已将图像列表工具栏(imglToolbar)的属性设置为将“透明”识别为指定颜色以显示为透明。我在VisualStudio2005工作

奇怪的是,当我查看Visual C#form预览窗口时,一切看起来都很棒。图标看起来与它们应该的完全一样。然而,一旦我实际构建了项目,按钮就会将图像边缘附近的每个半透明像素视为黑色。它似乎不能处理一个既透明又有颜色的

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

构建时的外观图像:


你知道为什么会这样吗?

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

我刚刚找到了答案,至少是针对我的具体情况

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


同样,对于可能遇到类似问题的用户,请确保该窗口不是MDI容器的子窗口。在查找信息时,我发现MDI子项根本不支持透明密钥。

谢谢,但看起来它需要保留一个MDI容器。真倒霉