Я не думаю, что это ошибка. Вы должны иметь глубину цвета ImageList, установленную на 32-битную, и вам нужно использовать визуальные стили.
Если приложение имеет визуальные стили, WinForms использует общие средства управления версиями Windows 6.0, поддерживающие альфа-прозрачность. В противном случае он будет использовать предыдущую версию, которая не поддерживает альфа-прозрачность, и неправильно отображает изображения ARGB с синим ореолом.
Если вам нужно обходное решение, вы можете попробовать создать новые растровые изображения того же размера, заполнив их BackColor ListView, создав объект Graphics в растровом изображении и нарисуя изображение ARGB на растровое изображение. Затем вы можете вставить эти предварительно обработанные растровые изображения в ImageList. Однако, если вы сделаете это, выбор будет выглядеть смешно на значке в ListView.
Другим решением будет прямой доступ к данным растрового изображения (с использованием LockBits()) и ручное смешивание любых полупрозрачных пикселей, что приведет к тому, что изображения будут отображены правильно и будут выглядеть в значительной степени так, как они должны быть выбраны ,