图像透明度不起作用

时间:2013-03-12 21:01:51

标签: windows-ribbon-framework

我正在使用Windows 8 RTM和Visual Studio Express 2012 for Windows Desktop。我正在尝试编写一个在Visual C ++中使用UIRibbon的应用程序。 (因为我只有Express版本,所以我无法访问MFC;请不要在答案中使用它。)

问题与我在功能区中使用的图标有关。由于Windows 7兼容性是此项目的要求,因此我无法使用PNG图像;我被老派的BMP困住了。问题在于,虽然一些BMP正确显示,但大多数图像周围都有黑色边界框。我怀疑问题与BMP文件有关,并且不在功能区XML文件或代码中。

正确显示的BMP我作为我改编的样本的一部分从互联网上下载。正确显示的BMP我从ICO文件中提取,然后使用System.Drawing.Bitmap .NET API转换为32位图像。 (此转换过程在单独的程序中完成,作为构建过程的一部分,而不是在运行时。)

我的问题是:以这种方式改变BMP的位深度是否会影响图像中的颜色?如果是这样,任何人都可以指出一个免费工具,可以将PNG文件转换为可在Windows UIRibbon中正常运行的32位BMP文件吗?

1 个答案:

答案 0 :(得分:0)

你在这里谈到Windows Ribbon Framework吗?如果是这样,您无论如何都无法使用PNG,因为该框架仅支持Windows 7的BMP。对于Windows 8,您也可以使用PNG。有关详细信息,请参阅有关M SDN article的内容。

对于将PNG转换为兼容的BMP文件的免费工具,您应该看一下“Windows Ribbon Framework for Delphi”附带的可视化设计器。

您只需将XML标记加载到编辑器中并添加图片即可。然后,编辑器将根据需要将添加的文件转换为BMP。您还可以使用编辑器检查功能区定义是否正确。它生成有效的“Windows Ribbon Framework”XML标记,因此您可以使用任何其他语言(如C ++,C#或Delphi)中的标记文件进行进一步的应用程序开发。