2015-08-31 12 views
14

Sto avendo un piccolo problema qui nel mostrare le immagini.UWP - Uri immagine nella cartella dell'applicazione

Così, quando sto cercando di caricare le immagini da XAML, posso usare un URI rispetto alla sorgente di immagini come questa:

<Image Source="/Assets/image.jpg" /> 

Ma se provo a cambiare la fonte immagine programatically dal codice dietro, Ottengo sempre un'eccezione e sono sicuro che sia a causa del falso Uri. Ho provato qualcosa di simile:

BitmapImage bitmapImage = new BitmapImage(new Uri("/Assets/image.jpg")); 

Sto sbagliando? Qualsiasi aiuto sarà apprezzato, grazie!

risposta

25

Per accedere ai file memorizzati all'interno del pacchetto di applicazioni, ma dal codice in cui non v'è alcuna autorità principale dedotto, è necessario specificare il ms-appx: schema:

Quindi nel tuo caso sarà qualcosa del tipo:

BitmapImage bitmapImage = 
        new BitmapImage(new Uri("ms-appx://[project-name]/Assets/image.jpg")); 

Leggere questa documentazione per maggiori dettagli: https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh965322.aspx

Speranza che aiuta.

+1

il progetto deve essere cercato dalla radice del pacchetto, è necessario 3/all'inizio: "ms-appx: /// [nome-progetto] /Assets/image.jpg" – cyrilchampier

26

Puoi anche usarlo con BaseUri.

BitmapImage bitmapImage = new BitmapImage(new Uri(this.BaseUri, "/Assets/image.jpg")); 

beni è un nome di cartella e si può cambiare con il tuo nome qualsiasi cartella personalizzata :)

0

Basta usare in questo modo

<Image Source="Assets/image.jpg" /> 
0
Image img = new Image(); 
img.Source = new BitmapImage(new Uri("http://www.contoso.com/images/logo.png")); 
0

Credo WPF è più clemente e percorsi come "Assets/image.png" sono possibili. Se stai scrivendo un'app UWA (win 10), devi utilizzare gli URI "ms-appx".

La mia esperienza è "ms-appx: ///Assets/image.png" funziona bene.

Sì, tre "/" s (!) E non è necessario il nome dell'app nel percorso.