Domanda

sto sviluppando un WinForms C # 3.0 applicazione. Il nostro designer ha creato un bel po 'di file .ico contenente tutta l'arte necessaria. La scelta di ICO è stata fatta perché molto spesso, è necessaria la stessa immagine in diversi posti in diverse dimensioni.

Ora, sembra file .ico sono davvero fastidioso da utilizzare in Visual Studio. L'unico modo per utilizzare quelle immagini sembra essere attraverso all'elenco immagini (che non sono supportati da tutti i controlli). Rispetto ad altre risorse, non è possibile scrivere questo:

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

Ecco le opzioni Sto pensando:

  • creare imagelists di tutte le possibili dimensioni fanno riferimento a tutte le mie icone nella mia finestra principale. Collegare questi imagelists da altre finestre e trovare un modo per esportare gli oggetti immagine dal ImageList quando non posso utilizzarlo direttamente; poiché ImageList contiene un metodo Draw (), questo dovrebbe probabilmente essere possibile.
  • convertire tutti i x.ico che ho in diversi x16.gif ... x48.gif, e usare quelli per mezzo di risorse.

Sarei interessato a sapere se alcune persone sono state .ico utilizzando con successo le risorse in un'applicazione Winform. In questo modo, come hai impostato le cose?

È stato utile?

Soluzione

ICO non è un formato piuttosto obsoleto, ma è vicino. E 'comunque utile per l'icona dell'applicazione, ma per quasi tutto il resto, è meglio utilizzare un ImageList per ogni dimensione di cui avete bisogno. Ed è molto più veloce per popolare un ImageList da un bitmap che contiene più immagini su cui fuori in una griglia.

Si vuole anche utilizzare un canale alfa trasparenza nei tuoi bitmap per ottenere il miglior risultato, in modo da memorizzare come file .PNG nelle risorse è il modo migliore per andare, in quanto PNG supporta un canale alfa. file ICO e GIF supportano solo singolo bit per la trasparenza - ogni pixel è o completamente opaco o completamente trasparenti. Un canale alfa a 8 bit per la trasparenza sembra molto più bello.

Se è possibile inviare il vostro artista torna al tavolo da disegno, allora si dovrebbe fare in modo, e hanno lui / lei fare pieno immagini anti-alias con alfa. Se non è possibile, allora vi consiglio di scrivere un piccolo programma per convertire i propri file di icone in bitmap adatti per il caricamento in imagelists.

Altri suggerimenti

Convertire le immagini in formato PNG. Punto. Chi ha deciso di utilizzare i file .ico per iniziare dovrebbe ottenere parlato in privato -. L'argomento non possiede terra

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top