"Формат изображения непризнан" в зависимости от монитора
У нас есть проект С# WPF (.NET 4.0, Visual Studio 2010). Он был протестирован как на Windows XP, так и на Windows 7, и, похоже, работает нормально, но теперь я получил отчеты от двух клиентов на поле (оба по некоторым причинам находятся в Испании), которые не могут запустить программное обеспечение.
Посмотрев на файл журнала, я вижу, что они получают исключение "Формат изображения непризнанным" (вызвано: Исключение из HRESULT: 0x88982F07).
У меня есть ошибка в googled, и я обнаружил, что это похоже на то, что WPF не загружает значок Vista PNG в Windows XP. Но эти отчеты пару лет, конечно, Microsoft разрешила это к настоящему времени (?), И в моем случае он отлично работает на большинстве установок XP. Я действительно не хочу ограничивать внешний вид значка на более поздних Windows.
Наиболее распространенное использование нашего приложения - на ноутбуках, и один из пользователей сообщил, что когда он подключил свой ноутбук к внешнему монитору, проблема была решена. И когда я попросил другого испытать то же самое, у него был тот же результат.
Итак, мои вопросы: вы знаете, была ли эта проблема решена Microsoft? Вы знаете, почему это происходит только на некоторых экземплярах Windows XP и как это связано с монитором? И что самое главное, знаете ли вы, что я могу сделать, чтобы сделать наше приложение более устойчивым к этому без изменения значка?
Ответы
Ответ 1
Сегодня у меня была такая же ошибка, что и я, и только на моей машине разработки. По-видимому, реализация WPF по-прежнему не работает.
Если я это понимаю (статья), это может произойти везде, где читаются ICO файлы. В моем случае это было при установке значка для главного окна приложения в XAML:
<Window x:Class="MyApp.MainWindow" Icon="Dashboard.ico" >
Вышеупомянутый код неожиданно завершился, но с использованием файла PNG была решена проблема:
<Window x:Class="MyApp.MainWindow" Icon="Dashboard.png" >
Ответ 2
Сегодня утром мне было очень весело с этой проблемой. Оказалось, что ошибка произошла только на машинах XP, где настройки цвета были установлены на 16 бит, а когда я изменил ее на 32-разрядную, проблема волшебным образом исчезла.
Это относится к XP (включая Embedded) SP3.
Ответ 3
эта проблема заставила меня долго тянуть мои волосы, и я потратил довольно много времени на то, чтобы выяснить, что происходит, поэтому я поделюсь своими выводами, поскольку это может помочь кому-то другому (возможно, даже самому себе в будущем):
https://social.msdn.microsoft.com/Forums/vstudio/en-US/9e723d51-0e26-4609-8fe1-5e0edcf7385b/setting-windowicon-to-vista-256x256-png-icon-causes-a-fileformatexception?forum=wpfкажется, что он решит себя, если вы не сжимаете значок. - Иоахим Исакссон Янв 23 '12 в 12:44
поэтому я искал в icoFx (который я использую для редактирования значков) и достаточно уверен:
![окно параметров в icoFx]()
Я просто снял флажок и снова сохранил мой .ico(размер от 30Kb до 286Kb в этом процессе!) и voilà!
проблема решена