73 votes

Comment référencer des ressources image en XAML?

Je suis très nouveau à WPF. Je mets un contrôle Image sur une fenêtre et je voudrais définir l'image sur le contrôle à une image qui est stockée dans un fichier de ressources de projet nommé "Resources.resx". Le nom de l'image dans le fichier de ressources est "Rechercher". Quelqu'un pourrait-il me montrer comment je pourrais m'y prendre?

107voto

Vivek Points 1341

Si l'image se trouve dans votre dossier de ressources et que son action est définie sur Ressource. Vous pouvez référencer l'image dans Xaml comme suit:

 "pack://application:,,,/Resources/Search.png"
 

En supposant que vous n'avez aucune structure de dossier sous le dossier Ressources et qu'il s'agit d'une application. Par exemple j'utilise:

 ImageSource="pack://application:,,,/Resources/RibbonImages/CloseButton.png"
 

quand j'ai un dossier nommé RibbonImages sous le dossier Resources.

27voto

RandomEngy Points 6937

Si vous avez une image dans le dossier Icons de votre projet et que son action de construction est "Ressource", vous pouvez vous y référer comme ceci:

 <Image Source="Icons/play_small.png" />
 

C'est le moyen le plus simple de le faire. C’est la seule façon pour moi d’imaginer le faire uniquement du point de vue des ressources et pas de fichiers de projet:

 var resourceManager = new ResourceManager(typeof (Resources));
var bitmap = resourceManager.GetObject("Search") as System.Drawing.Bitmap;

var memoryStream = new MemoryStream();
bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp);
memoryStream.Position = 0;

var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = memoryStream;
bitmapImage.EndInit();

this.image1.Source = bitmapImage;
 

8voto

Shrinand Points 151

L'un des avantages de l'utilisation du fichier de ressources est l'accès à ces ressources par des noms, de sorte que l'image peut changer, le nom de l'image peut changer, tant que la ressource est maintenu à jour correcte de l'image va s'afficher.

Ici est un nettoyant approche pour ce faire: En Supposant Que Les Ressources.resx est dans l'INTERFACE utilisateur.Les Images d'un espace de noms, ajouter l'espace de noms de référence dans votre xaml comme ceci:

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:UI="clr-namespace:UI.Images" 

Configurer votre source de l'Image comme ceci:

<Image Source={Binding {x:Static UI:Resources.Search}} /> où la "Recherche" est le nom de la ressource.

4voto

user3441182 Points 1
  1. Ajoutez des dossiers à votre projet et ajoutez des images à ceux-ci via "Elément existant".
  2. XAML semblable à ceci: <Image Source="MyRessourceDir\images\addButton.png"/>
  3. F6 (Build)

0voto

Djerry Points 2049

déjà discuté, on dirait qu'il y a un exemple pour vous ici

Vous pouvez également jeter un coup d'œil ici , où vous pourrez mieux comprendre ce qui est possible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X