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!
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.
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é :)
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.