我的 WPF 窗口构造函数在调用时出现异常:“InitializeComponent()”
例外是 NotSupportedException:“不支持像素格式”
我在互联网上没有找到任何信息。
为什么会出现这个异常?
我想让人们知道该错误来自 MenuItem 中使用的错误 PNG 图像文件。
为了解决我的问题,我在 Paint.net 中打开了失败的 PNG 并覆盖了有问题的 PNG。没有更多的例外。
注意:仅当您中断任何异常时才会出现问题。否则一切似乎都正常,并且图标 (.png) 在屏幕上正确显示。
“不支持像素格式”异常的一个潜在原因是具有“索引”颜色空间的图像。这意味着像素值不是由三个 (R,G,B) 字节表示(在通常的 RGB 颜色空间中就是这种情况),而是由颜色表中的单字节索引表示。可以检查和更改图像的色彩空间,例如使用 Gimp 通过“图像/模式”菜单。
将此异常跟踪到我的应用程序中的 PNG 图像。在 Photoshop 中检查图像后,我注意到它的颜色模式设置为索引。将其更改为 RGB 解决了问题,并且没有更多例外。您可以在 Photoshop 中检查/更改模式,如下所示:
图像 -> 模式 -> RGB
此外,只有在 Visual Studio 中启用此异常才会发生:
调试 -> 异常 -> 公共语言运行时异常(检查)