【问题标题】:Build turns partially transparent image pixels black构建将部分透明的图像像素变为黑色
【发布时间】:2011-03-04 16:05:15
【问题描述】:

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

关于为什么会发生这种情况的任何想法?

【问题讨论】:

    标签: c# visual-studio image png transparency


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢,但它看起来需要保留一个 MDI 容器。无赖。
      猜你喜欢
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      • 2016-06-14
      • 2011-03-26
      • 2018-02-17
      • 1970-01-01
      • 2012-07-30
      相关资源
      最近更新 更多