SWB*_*SWB 12 .net icons color-depth winforms
在具有16位颜色深度的显示器上(包括设置为16位颜色的远程桌面会话),Windows窗体应用程序使用指定标题栏图标(Form.Icon)的低颜色深度版本.但是,WPF应用程序和Windows资源管理器使用24位颜色深度(如果存在).
我第一次在我正在研究的Windows窗体应用程序中看到这个.我使用的图标定义了4位,24位和32位变体.在16位显示器上,Windows Forms在标题栏中使用了丑陋的4位版本而不是漂亮的24位或32位版本.
为了测试和说明行为,我创建了一个测试图标,每种尺寸和颜色格式都有明显不同的设计.我包括4位,8位,24位和32位变体.
以下是32位和16位显示的结果:
Windows资源管理器:

WPF申请:

Windows窗体应用程序:

Windows资源管理器:

WPF申请:

Windows窗体应用程序:

在16位显示器上,Windows资源管理器和WPF使用24位格式,但Windows窗体不使用.在这种情况下,它使用8位格式.我的真实应用程序图标没有8位变体(但我现在要制作一个!),因此Windows Forms使用了4位变体.
如何让我的Windows窗体应用程序在16位显示器的标题栏中显示24位版本的图标?
小智 1
不幸的是,没有办法可以在 16 位系统上显示 24 位图像。但是,您可以想出一个技巧,使您的应用程序适应其运行的系统。
所以,你可以尝试伪造图片的“位”字段(尝试使用一些照片编辑软件),使其认为它是 16 位,而实际上是 24 位。这是可能的,几年前我已经设法做到了,但我不能记住如何(抱歉)。
我想这就是你应该尝试解决问题的方法。
祝你好运!