2009-11-23 5 views
1

J'ai des images bitmap affichées dans un contrôle DataGridView et sur des contrôles personnalisés. Ce sont toutes des images de type lineart de base et non des images. J'ai récemment remarqué qu'ils semblaient tous un peu délavés/délavés et quand j'ai examiné les captures d'écran que j'ai prises, j'ai découvert que les canaux de couleur qui auraient dû avoir des valeurs de 0 avaient une valeur de 44 à la place. Les canaux de couleur ayant une valeur de 255 n'ont pas été affectés..BMP Les couleurs d'image sont modifiées dans l'application winform

Les images PNG que j'utilise pour les icônes de la barre d'outils ne sont pas affectées.

Le problème semble être lié à ImageStream dans le fichier formname.resx avec ImageList qui date de la création du projet dans VS2k3. Là, les images sont affichées correctement; donc cela semble être un problème VS2k8 en quelque sorte forme ou forme.

La lecture des images en 2k8 semble résoudre le problème, mais ma liste est assez longue pour que cela devienne fastidieux. Y a-t-il autre chose que je pourrais faire pour le forcer à se comporter correctement?

Répondre

1

Pouvez-vous ajouter les images à un fichier de ressources (par exemple, Resources.resx) ou devez-vous utiliser un ImageList? La modification d'un fichier de ressources est beaucoup plus facile que la modification d'un ImageList, et il a l'avantage supplémentaire que les ressources peuvent être incluses au moment de la construction; De cette façon, si vos images changent, une simple recompilation inclura les nouvelles.

+0

Je peux probablement parce que je pense que l'accès direct à l'ImageList est bien encapsulé. Je n'ai jamais accédé à rien depuis Resources.resx à partir de code (par rapport à la page de propriétés dans le concepteur) auparavant. Y a-t-il quelque chose que je dois savoir? –

+0

Si vous utilisez le concepteur Visual Studio pour modifier le fichier de ressources, il générera une structure de classe de typesafe à utiliser dans votre code (par exemple 'Bitmap b = Properties.Resources.Image1;'). –

Questions connexes