在具有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位版本的图标?
答案 0 :(得分:1)
不幸的是,您无法在16位系统上显示24位图像。但是,您可以想出一个技巧,使您的应用程序适应它正在运行的系统。
所以,你可以尝试伪造图片的“位”字段(尝试使用一些照片编辑软件),认为当它实际为24时它是16位。这是可能的,我已经设法在几年前做到了,但我不记得(对不起)。
我想这是你应该尝试解决问题的方法。
祝你好运!