2012-10-18 13 views
8

Ho alcune immagini aggiunte alla mia soluzione, ora è sotto la cartella images \ flowers \ rose.png all'interno di Solution Explorer. Voglio un modo per caricare dinamicamente questa immagine sul mio controllo immagine.Aggiunta e caricamento dinamico di immagini da Risorse in C#

Il mio attuale approccio è rendere il tipo "contenuto" e utilizzare le proprietà "copia sempre". Quindi darei un percorso relativo all'immagine come di seguito.

Image2.Source = new BitmapImage(new Uri("/images/flowers/Customswipe_b.png", UriKind.Relative)); 

C'è un modo per farlo caricare dalla risorsa senza copiarlo sul sistema di destinazione.

risposta

1

È possibile utilizzare questo:

Image2.Source = new Bitmap(
     System.Reflection.Assembly.GetEntryAssembly(). 
     GetManifestResourceStream("MyProject.Resources.myimage.png")); 

O

Image2.Source = new Bitmap(WindowsFormsApplication1.Properties.Resources.myimage); 

Vi consiglio la seconda.

14

I seguenti funziona bene per me:

image.Source = new BitmapImage(new Uri("pack://application:,,,/YourAssemblyName;component/Resources/someimage.png", UriKind.Absolute)); 

Inoltre si dovrebbe cambiare la Build Action della tua immagine None-Resource.

0

Il modo in cui si aggiunge l'immagine e quindi si modifica "Azione di compilazione" in "Risorse" farà anche il lavoro, ma come è stato chiesto di aggiungere e caricare da Risorse sarà un approccio diverso per ottenere lo stesso compito. Vorrei fornire un collegamento per leggere determinati articoli di msdn.

Adding and Editing Resources (Visual C#)

0

ho avuto qualche problema per trovare la sintassi esatta per l'URI, in modo da vedere di seguito i dettagli:

Se l'immagine (myImage.png) si trova in una sottocartella "Immagini" (dalla radice directory), la sintassi esatta è:

image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/myImage.png", UriKind.Absolute)); 

Se l'immagine è nella sottocartella images/icon/ (dalla directory principale), la sintassi è:

image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/icon/myImage.png", UriKind.Absolute)); 
  • Si noti che la parte "pack://application:,,, non cambia.
  • Assicurarsi di impostare il "Build azione" a "Risorse"

Per maggiori informazioni: see here.

Problemi correlati