La documentation sur la propriété .ColorDepth des États .StateImageList:
Dans la version .NET Framework 1.1 ou plus tard, la valeur par défaut est Depth8Bit.
Il semble que ce 'défaut' ne puisse pas être modifié. Eh bien, vous pouvez le changer, mais ça ne sert à rien.
En regardant le code dans Reflector, lorsque la propriété StateImageList de TreeView est définie, une nouvelle liste d'images est créée en interne. Cette liste d'images utilise la valeur par défaut pour la profondeur de couleur. Et puisque vous ne pouvez pas changer la profondeur de couleur après avoir créé la liste d'images, cela garantit à peu près que la StateImageList ne peut être affichée qu'à la profondeur de couleur par défaut.
EDIT: Je pense avoir compris ce qui se passe ici. J'ai joué avec des images comme vos cercles ombrés à différentes profondeurs de couleurs. Fondamentalement, quand je prends une image décente et la convertis en couleur 4 bits, j'obtiens des résultats qui ressemblent exactement aux images de la StateImageList. Malgré la note '8 bits' dans la documentation, il semble que la StateImageList utilise toujours la profondeur de couleur 4 bits (l'ancienne, ancienne norme 16 couleurs) comme valeur par défaut.
Ce n'est que lorsque j'utilise des images 4 bits dans la liste d'images, que je n'obtiens aucun changement entre l'affichage de l'imagelist et celui de l'étatimagelist.
alt text http://www.freeimagehosting.net/uploads/74873abc94.png
J'ai créé cette image pour le imagelist en utilisant l'ancienne palette 16 couleurs de Windows. Cela a l'air absolument terrible, mais cela n'a pas changé dans l'étatimagelist.
J'ai essayé aussi des images 8bit sans succès – leppie
Sonne bien, merci, va l'essayer au travail demain :) Peut-être que je peux essayer de préparer les images pour bien paraître à 4 bits. – leppie
4 images binaires ne fonctionnent pas correctement soit :(mis à jour ma question avec un autre screenie. – leppie