TLDR:ImageList vs ressources: Comment organiser les images dans Winforms?
Quel est le meilleur modèle pour organiser des images dans un projet? Est-il fréquent et conseillé de créer un ImageList
au démarrage et accéder à chaque image via son index ou sont resoruces le chemin à parcourir? Dans tous les cas, veuillez expliquer pourquoi.
Problème détaillée:
Je travaille actuellement sur un logiciel qui a été en développement depuis un certain temps maintenant. Il a été partiellement écrit en Visual Basic et dépend fortement de la classe ImageList
pour organiser toutes les images dans chaque partie du logiciel. Au début de l'application, un ImageList
est créé via un grand tableau contenant tous les noms de tous les fichiers image qui seront toujours accessibles. Chaque fois que vous avez besoin d'une image, vous devez accéder à cet objet et obtenir votre image via l'index de l'image dans la liste. Je comprends que cela a pu être partiellement utile dans le passé, car les ressources dans Visual Studio n'étaient pas aussi pratiques à utiliser et certains contrôles ne fonctionnaient qu'avec ces listes, par exemple la classe ToolBar
(remplacée par la ToolStrip
) qui a une propriété ImageList
et chaque bouton obtient juste l'index de son image dans le ImageList
. Je me sens comme ce massif ImageList
devrait être abandonné et il devrait y avoir une lente migration vers l'organisation de ces images dans les ressources, mais je ne suis pas principalement un développeur. NET et ne sais pas grand-chose sur Winforms et ses meilleures pratiques .
Comme demandé dans le TLDR: Quel est le meilleur modèle pour organiser des images dans un projet? Est-il fréquent et conseillé de créer un ImageList
au démarrage et accéder à chaque image via son index ou sont resoruces le chemin à parcourir? Dans tous les cas, veuillez expliquer pourquoi.
des questions d'opinion sont hors-sujet. Winforms, bien que toujours supporté, n'est plus en développement. C'est ce que c'est. – LarsTech
ImageList ne doit être utilisé que pour fournir des images pour ListView et TreeView, son comportement de copie profonde le rend trop inefficace pour gérer de grandes collections d'images. Vous devriez utiliser une 'Liste'. N'oubliez pas de Dispose() quand ils ne sont plus nécessaires. –