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?
Réponses
Trop de publicités?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.
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;
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.