Question

Je développe un WinForms c l'application # 3.0. Notre designer a créé un très grand nombre de fichiers contenant Ico tout l'art nécessaire. Le choix de Ico a été fait parce que très souvent, la même image est nécessaire dans plusieurs endroits dans différentes dimensions.

Maintenant, il semble les fichiers .ico sont vraiment gênant pour une utilisation en studio visuel. La seule façon d'utiliser ces images semble être dans la liste des images (qui ne sont pas pris en charge par tous les contrôles). Par rapport à d'autres ressources, vous ne pouvez pas écrire ceci:

foo.Image = global::RFQHUB.RFQHUBClient.Properties.Resources.foo; //    Cannot implicitly convert type 'System.Drawing.Icon' to 'System.Drawing.Image'  

Voici les options que je songe à me:

  • créer ImageLists de toutes les tailles possibles référençant toutes mes icônes dans ma fenêtre principale. Un lien entre ces ImageLists d'autres fenêtres et de trouver un moyen d'exporter des objets d'image de la ImageList quand je ne peux pas l'utiliser directement; car ImageList contient une méthode Draw (), cela devrait probablement être possible.
  • convertir tous les x.ico J'ai dans plusieurs x16.gif ... x48.gif, et les utiliser au moyen de ressources.

Je serais intéressé de savoir si certaines personnes ont utilisé avec succès des ressources Ico dans une application Winform. Dans l'affirmative, comment avez-vous mis en place des choses?

Était-ce utile?

La solution

ICO est pas tout à fait un format obsolète, mais il est proche. Il est toujours utile pour votre icône de l'application, mais pour presque tout le reste, il est préférable d'utiliser un ImageList pour chaque taille que vous avez besoin. Et il est beaucoup plus rapide pour remplir un ImageList à partir d'un bitmap qui contient plusieurs images dans une layed grille.

Vous voulez également utiliser une transparence du canal alpha dans vos bitmaps pour obtenir le meilleur résultat, afin de les stocker sous forme de fichiers .PNG dans vos ressources est la meilleure façon d'aller, car PNG prend en charge un canal alpha. ICO et les fichiers GIF ne supportent que peu unique pour la transparence - chaque pixel est soit totalement opaque ou totalement transparent. Un canal alpha 8 bits pour la transparence est bien plus beau.

Si vous pouvez envoyer votre artiste retour à la planche à dessin, alors vous devriez le faire, et lui / elle faire plein d'images lissées avec alpha. Si vous ne pouvez pas, alors je suggère que vous écrivez un petit programme pour convertir tous vos fichiers icône en bitmaps pour le chargement dans appropriés ImageLists.

Autres conseils

Convertir les images en PNG. Point. Celui qui a décidé d'utiliser des fichiers .ico pour commencer devrait faire parler en privé -. L'argument ne tient pas de motif

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top