在 XP 上运行时 Winform PictureBox 不透明

Posted

技术标签:

【中文标题】在 XP 上运行时 Winform PictureBox 不透明【英文标题】:Winform PictureBox not transparent when run on XP 【发布时间】:2018-09-22 21:29:07 【问题描述】:

我正在尝试制作一个在透明表单背景上在 PictureBox 中显示各种 GIF 的软件。到目前为止一切都很好,但是当我在不同的系统上运行程序时有一个区别。

我在 Win10 64 位笔记本电脑上使用最新的 .NET 框架编写它,并且透明度和动画效果很好。它只是在表单上设置了相同的 TransparencyKey 作为其背景石灰颜色的 PictureBox GIF。

我确定以 .NET 4.0 为目标,因为我听说这是 Win XP 支持的最后一个。当我将它传输到我的其他测试系统(VMWare XP SP3、DX9、.NEt 4.0)时,在 PictureBox 区域中可以看到表单 Lime 背景,表单的其他部分保持透明。

如何使用 WinForms 让带有透明背景的 GIF 在 XP 桌面上显示?

这甚至可以在 XP 上使用 WinForms 吗?为 XP 制作项目不是强制性的,但由于目标系统将非常薄弱,因此非常受欢迎。

【问题讨论】:

一个完全疯狂的猜测是,实际上重要的是图像的背景,而不是图片框的背景。并且虚拟图形适配器以较低的位深度运行,例如 8bpp 或 16bpp。 您可以使用BackgroundImage 表格来显示您的位图吗?我确信这有效,无论图像是静态的还是动画的。作为Backcolor/TransparencyKey,使用洋红色。 【参考方案1】:

我要感谢 Hans Passant,因为他的评论给了我一个似乎可以解决问题的想法。

'一个完全疯狂的猜测是,实际上重要的是图像的背景,而不是图片框的背景。并且虚拟图形适配器以较低的位深度运行,例如 8bpp 或 16bpp。 – Hans Passant 19 小时前”

我将代码中提到的所有“石灰”颜色和透明键都更改为“白色”,现在可以正常工作了...

【讨论】:

以上是关于在 XP 上运行时 Winform PictureBox 不透明的主要内容,如果未能解决你的问题,请参考以下文章

c# winform程序发布后运行时出现的一个问题

Winform中将Bitmap对象通过picture显示图片

c# 开发的winform软件 怎么样使其只能在xp系统下运行

C# winform 在win7 下界面出错

C# - 为啥全屏 Winform 应用程序不总是覆盖任务栏?

c#winform打印窗体内容 win7下同下编译 xp系统显示问题