Je suis issu d'un milieu principalement axé sur le Web et un peu sur Windows Forms. Pour un nouveau projet, nous allons utiliser WPF. L'application WPF aura besoin de 10 à 20 petites icônes et images à des fins d'illustration. J'envisage de les stocker dans l'assemblage en tant que ressources intégrées. Est-ce la bonne façon de procéder ?
Comment puis-je spécifier dans XAML qu'un contrôle d'image doit charger l'image à partir d'une ressource intégrée ?
Si vous comptez utiliser l'image à plusieurs endroits, il vaut mieux ne charger les données de l'image qu'une seule fois en mémoire et les partager entre tous les éléments Image
.
Pour ce faire, créez une [BitmapSource
] (http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapsource.aspx) comme ressource quelque part :
<BitmapImage x:Key="MyImageSource" UriSource="../Media/Image.png" />
Ensuite, dans votre code, utilisez quelque chose comme :
<Image Source="{StaticResource MyImageSource}" />
Dans mon cas, j'ai découvert que je devais définir le fichier Image.png
pour avoir une action de construction de Resource
plutôt que juste Contenu
. Cela permet à l'image d'être transportée dans votre assemblage compilé.
Oui, c'est le bon chemin.
Vous pourriez utiliser l'image dans le fichier de ressources en utilisant simplement le chemin :
<Image Source="..\Media\Image.png" />
Vous devez définir l'action de construction du fichier d'image sur "Resource" ;.
Si vous utilisez [Blend][1], pour vous faciliter la tâche et ne pas avoir de problème pour obtenir le chemin d'accès correct pour l'attribut Source, faites simplement glisser l'image du panneau Projet vers le concepteur.