透明像素不透明

时间:2015-05-14 17:25:45

标签: c# .net winforms

首先我要说的是我试图对此进行研究,但是我无法用它来说明我不会得到无关的结果。

所以这就是问题所在。我有一个按钮(实际上是6个按钮),它有一个圆角的外观。它们将保存为PNG,并使用button.BackgroundImage = [resource]加载到按钮中。其中五个完美无缺。当他们点击它们时,背景图像会被更改,并且再次看起来很好 - 包括在不再按下按钮时改回来。然后是下面屏幕截图中的按钮。

我不知道这种绿色来自哪里 - 事实上,当我使用GetPixel在图像上逐像素地检查并检查ARGB值时,它们变成了具有A = 0的紫色。令人困惑的是,绿色只会在运行时显示 - 如图所示。根据PhotoShop和GiMP,RGB是46,139,86 .. GetPixel显示它们是紫色范围内的各种颜色,但作为一个例子,在0,0它显示164,119,182 A:0。

这是我尝试的事情列表(某些伪代码):

  • if(pixel.A == 0){SetPixel(x,y,Color.Transparent); } - 没有变化
  • if(pixel.A == 0){SetPixel(x,y,Form1.TransparencyKey); - 见 通过桌面而不是表单背景(如预期的那样)。
  • 使用已知良好的图像(参见屏幕截图) - 无变化。
  • 删除控件,复制并粘贴一个已知的好控件(见截图) - 没变。
  • 添加另一个控件,希望我可以隐藏有缺陷的控件,基本上 只是忽略它。 - 所有新按钮都有此问题。
  • 将按钮移动到表格的不同区域(长篇故事)。 - 没变。
  • 在设计器中不设置背景,然后在Form1.Load中设置背景。 - 不 更改。
  • 重新启动Visual Studio。 - 没变。
  • 清洁解决方案,重建。 - 没变。
  • 重新启动计算机。 - 没有变化。

以前任何人都有这个问题,或者知道发生了什么?我有一个有效的解决方案(使用面板作为按钮 - 我只是测试它,透明度在新面板上很好)..但我更喜欢弄清楚这一点。提前谢谢!

这里是imgur:

enter image description here

0 个答案:

没有答案