2009-11-20 136 views
1

我使用透明度为32位的PNG文件。我说他们与性能的图像列表:ImageList透明度在运行时不起作用

ColorDepth: Depth32Bit 
TransparentColor: Transparent 

当我将图像分配给我的工具栏按钮,它预览用正确的透明度Visual Studio的罚款。但是当我运行这个应用程序时,透明度都会被遮住半透明区域的黑色搞乱。

我该如何解决这个问题?

alt text

alt text

+0

如果没有记错,有在SWF 2.0 ImageList中的一个错误,将来自32个图像保存在图像列表资源*当除去α通道中的图像列表*。如果在Visual Studio中保存并重新加载表单,图像是否仍然正确显示? – OregonGhost 2009-11-20 17:58:40

+0

保存并关闭表单或重新启动Visual Studio后,预览仍然正确。 – 2009-11-20 18:00:48

回答

3

的解决方案显然是把

Application.EnableVisualStyles(); 

您的应用程序开始之前。这已解决了透明度问题。

Solution Reference

MSDN on EnableVisualStyles

+0

好吧,我看到这个问题发生之前没有解决它。我确实想知道为什么你的第二张截图看起来那么矮胖! – 2009-11-20 18:24:56

+0

我在Word加载项内使用了这个问题(使用AddinExpress)。添加Application.EnableVisualStyles()到我的AddinModule的InitializeComponent方法解决了它。 – 2013-08-26 08:06:51

+0

不适合我... – Spook 2015-03-06 14:57:31

2

如果直接将它们添加到工具栏不使用图像列表,我认为他们会正确绘制。

+0

简单的解决方案。我也更喜欢这种方式。 – OregonGhost 2009-11-20 17:59:28

+0

嗯,我宁愿使用图像列表来轻松地交换工具栏按钮的图像(如切换非活动按钮)。 – 2009-11-20 18:00:16

+0

我同意,但我从来没有设法得到这个工作。 – 2009-11-20 18:01:53