Nie sądzę, że to błąd. Powinieneś ustawić głębię kolorów ImageList na 32-bitową i musisz używać stylów wizualnych.
Jeśli aplikacja ma włączone style wizualne, WinForm używa wersji 6.0 wspólnych elementów sterujących systemu Windows, która obsługuje przezroczystość alfa. W przeciwnym razie użyje poprzedniej wersji, która nie obsługuje przezroczystości alfa, i niepoprawnie renderuje obrazy ARGB z niebieskim halo.
Jeśli potrzebujesz obejścia, możesz spróbować utworzyć nowe bitmapy o tym samym rozmiarze, wypełniając je funkcją BackColor ListView, tworząc obiekt graficzny na mapie bitowej i rysując obraz ARGB na mapie bitowej. Następnie możesz wstawić te wstępnie odświeżone bitmapy do ImageList. Jeśli to zrobisz, wybór będzie wyglądał śmiesznie na ikonie w ListView.
Kolejnym obejściem będzie bezpośredni dostęp do danych bitmapowych (przy użyciu funkcji LockBits()) i ręczne połączenie wszystkich półprzezroczystych pikseli, co spowoduje, że obrazy będą prawidłowo renderowane i wyglądać tak, jak powinny, gdy są wybrane .