web-dev-qa-db-fra.com

UWP - Image Uri dans le dossier de l'application

J'ai un petit problème à montrer des images.

Ainsi, lorsque j'essaie de charger des images à partir de XAML, je peux utiliser un uri relatif par rapport à la source de l'image, comme ceci:

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

Mais si j'essaie de modifier la source de l'image de manière programmée à partir du code suivant, j'obtiens toujours une exception et je suis sûr que c'est à cause du faux Uri. J'ai essayé quelque chose comme ça:

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

Est-ce que je me trompe? Toute aide sera appréciée, merci!

18
Stephen Djohan

Pour accéder aux fichiers stockés dans le package d'application, mais à partir d'un code où il n'y a pas d'autorité racine supposée, vous devez spécifier le paramètre ms-appx:

Donc dans votre cas ce sera quelque chose comme:

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

Lisez cette documentation pour plus de détails: https://msdn.Microsoft.com/en-us/library/windows/apps/xaml/hh965322.aspx

J'espère que ça aide.

31
Norman Sasono

Vous pouvez également l'utiliser avec BaseUri.

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

Assets est un nom de dossier que vous pouvez modifier avec n'importe quel nom de dossier personnalisé :)

31
Zia Ur Rahman

Je crois que WPF est plus indulgent et que des chemins du type "Assets/image.png" sont possibles. Si vous écrivez une application UWA (win 10), vous devez utiliser l'URI "ms-appx".

Mon expérience est "ms-appx: ///Assets/image.png" fonctionne bien.

Oui, trois "/" s (!) Et pas besoin du nom de l'application dans le chemin.

1
Tb.