Проблемы с .NET Image в ListView в приложении WinForms (отображается неправильно) - PullRequest
1 голос
/ 10 ноября 2010

У меня очень странные проблемы с изображениями. У меня есть окно настроек, в левой части которого есть ListView, в котором есть различные значки изображений, которые при нажатии обновляют панель вправо для отображения соответствующих элементов - ничего особенного.

Однако недавно я добавил две дополнительные иконки, но их изображения отображаются неправильно, и я не могу понять, почему. Я пробовал различные форматы изображений (png, jpg, gif, bmp), и ни один из них не отображается правильно. Я попробовал это на другом компьютере, чтобы видеть, была ли это моя установка .NET, но ошибка не исчезла.

Я был бы рад, если бы каждое изображение отображалось неправильно, но, к сожалению, это только эти два, и, возможно, любое другое изображение, которое я сейчас добавлю.

У кого-нибудь есть идеи - я из них всех ...

Вот как это выглядит при запуске ...

alt text

Здесь тот же файл ресурсов, что и в Visual Studio ...

alt text

Другой ...

alt text

Другие изображения отображаются очень хорошо, например, вот этот ...

alt text

1 Ответ

4 голосов
/ 10 ноября 2010

Это вызвано тем, что ImageList хранит эти изображения. Вы оставили свойству ColorDepth значение по умолчанию, Depth8Bit. Это заставляет Windows преобразовывать эти изображения с высоким содержанием цвета (например, обратите внимание на тонкий градиент в стрелках) в формат пикселей, который может хранить только 256 различных цветов. Это преобразование с потерями и вызывает артефакты.

Измените свойство на Depth32Bit.

...