Oppure

Loading

In fase di progettazione, se si vogliono aggiungere immagini a controlli come Button, Label, SplitButton, ToolBox et similia Ŕ sufficiente selezionare la proprietÓ Image (o BackgroundImage), aprire la finestra di dialogo mediante pressione sul pulsante che appare, scegliere quindi un file immagine dall'Hard Disk o dalle risorse del progetto, e confermare la scelta per ottenere un effetto ottimo. Tuttavia, ci˛ non Ŕ sempre possibile, ad esempio se a run-time si vogliono associare determinate icone a elementi di una lista che non Ŕ possibile prevedere durante la stesura del codice. In situazioni simili, il controllo che viene in aiuto del programmatore si chiama ImageList. Esso costituisce una lista, ordinata secondo indici e chiavi, che contiene immagini precedentemente caricate dallo sviluppatore: tutte queste vengono ridimensionate secondo una dimensione fissata dalle proprietÓ del controllo e hanno una limitazione di profonditÓ di colore, sempre predeterminata, da 8 a 32 bit. Per ottenere effetti di grande impatto, Ŕ consigliabile utilizzare formati ad ampio spettro di colore e con trasparenza come il Portable Network Graphics (*.png), oppure il JPEG (*.jpg) se si vuole risparmiare spazio pur conservando una discreta qualita'; il formato ideale Ŕ 32x32 pixel per le icone grandi e 22x22 o 16x16 in quelle piccole come nei men¨ a discesa o nelle ListView a dettagli.
Il meccanismo che permette ai controlli di fruire delle risorse messe a disposizione da un'ImageList Ŕ lo stesso usato dal ContextMenuStrip. Ogni controllo con interfaccia che supporti questo processo, dispone di una proprietÓ ImageList, che deve essere impostata di conseguenza a seconda della lista di immagini che si vuole quel controllo possa utilizzare. Successivamente, i singoli elementi al suo interno sono dotati delle proprietÓ ImageIndex e ImageKey, che permettono di associarvi un'immagine prelevandola mediante l'indice o la chiave impostata. Ecco alcuni esempi di come potrebbero presentarsi controlli di questo tipo:

ImageList.jpg

ImageList su ListView


ImageList2.jpg

ImageList su TreeView


ImageList3.jpg

ImageList su TabControl

á

Reperire le icone

Indubbiamente questo controllo offre moltissime possibilitÓ di personalizzare la veste grafica dell'applicazione a piacere del programmatore, tuttavia se non si dispone di materiale adatto, il suo grande aiuto viene meno. Per questo motivo, dar˛ alcuni suggerimenti su come reperire un buon numero di icone freeware o al limite sotto licenza lgpl (il che le rende disponibili per l'uso da parte di software commerciali). Come prima risorsa, c'Ŕ il programma AllExIcon, scritto da Mauro Rossi in Visual Basic 6, che potete trovare a questo indirizzo. Dopo averlo avviato, basta impostare la directory di ricerca su C:WINDOWSSystem32 (per sistemi operativi Windows XP) e il filtro su "*.dll". Verranno estratte moltissime belle icone, con la possibilitÓ di salvarle in formato bitmap una alla volta o in massa. Dato il loro formato, anche convertite in JPEG, rimarrÓ un colore di sfondo, che pu˛ venire parzialmente eliminato impostando la proprietÓ ImageTransparency del form su Transparent o su White, rendendo quindi trasparente il loro sfondo. Come seconda possibilitÓ ci sono alcuni pacchetti di icone reperibili dal web. Il primo che consiglio Ŕ "Nuvola", lo stesso che uso per le mie applicazioni, distribuito sotto licenza LGPL su questo sito; il secondo Ŕ "500.000 Icone!", una collezione di circa 8000 icone, divise in *.ico e *.png, messe insieme da svariate fonti del web: ogni risorsa Ŕ stata resa pubblica dal suo creatore e non ci sono limitazioni al loro uso. Il pacchetto pu˛ essere trovato solo attraverso eMule. La terza possibilitÓ consiste nel cercare sulla rete insiemi di immagini messe liberamente a disposizione di tutti da qualche volenteroso designer, ad esempio su questa pagina di Wikipedia, dove, navigando tra le varie categorie, Ŕ possibile ottenere svariate centinaia di icone.

A cura di: Il Totem