Encapsuler une image dans les ressources d'un assemblage Silverlight/WPF et l'utiliser dans un BitmapSource
Par Eric. Silverlight BitmapSource Resource | Lien permanent.
Ce billet décrit comment charger un fichier image dans un BitmapSource à partir d'un sous-dossier du projet, sans avoir à placer celle-ci à côté du fichier XAP sur le site web.
C'est très simple mais pas forcément intuitif :
Considérons l'image "ok.png" placée dans un sous-dossier "/images" d'un projet Silverlight nommé "projet".
Pour stocker l'image dans l'assembly du projet, définir dans les propriétés de celle-ci Build Action=Resource.
Pour extraire l'image:
BitmapSource bmp = new BitmapImage();
bmp.SetSource(App.GetResourceStream(new Uri("projet;component/images/ok.png", UriKind.Relative)).Stream);
L'important ici est l'Uri qui précise le chemin relatif par rapport à la racine de l'assembly "projet". Grâce à cette Uri, l'instruction précédente fonctionne depuis un autre assembly de la solution.
Commentaires
Merci pour ce tres bon article. J'espere que d'autres suivront.