Проблемы с изображением .NET в ListView в приложении WinForms (неправильное отображение)

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

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

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

У кого-нибудь есть идеи - у меня все кончилось...

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

альтернативный текст

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

альтернативный текст

Другой...

альтернативный текст

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

альтернативный текст


person Marlon    schedule 10.11.2010    source источник


Ответы (1)


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

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

person Hans Passant    schedule 10.11.2010
comment
Большое спасибо, Ганс, мне нравятся вещи, которые оказываются простыми. - person Marlon; 10.11.2010