web-dev-qa-db-fra.com

WPF - Importer une image en tant que ressource

Je me suis enseigné WinForms récemment, mais je suis maintenant passé à WPF, plus moderne, qui est tellement mieux! 

La seule chose à laquelle je suis confus en ce moment est d'utiliser des images. Maintenant, dans WinForms, vous l'avez importé en tant que ressource et l'image continuerait à fonctionner une fois compilée dans le dossier/bin/Debug. 

Je n'arrive pas à comprendre comment faire fonctionner cela dans WPF. Lorsque je lance l'application, l'image ne se charge pas, car l'image est enregistrée dans /Projects/AppName/images/ et l'application est compilée dans /Projects/AppName/bin/Debug lorsque je l'exécute en mode débogage. 

Dois-je simplement faire une copie de mon dossier Images et le placer là où l'application est compilée? Ou est-il un autre moyen. Voici mon code qui affiche mon image:

<Image Width="300">
    <Image.Source>
        <BitmapImage DecodePixelWidth="300" UriSource="/images/jamsnaps-dark.png" />
    </Image.Source>
</Image>
22
Martyn Ball
  • Créez un dossier (par exemple images) dans votre projet Visual Studio.
  • Ajoutez le ou les fichiers image à ce dossier.
  • Définissez leur Build Action sur Resource (dans la fenêtre Propriétés, voir la deuxième image dans cette réponse ).

Puis écrivez la propriété UriSource comme vous l'avez déjà fait:

UriSource="/images/jamsnaps-dark.png"

Cet URI est effectivement un URI du pack de fichiers de ressources , où le préfixe est automatiquement ajouté par WPF.

39
Clemens

Deux options :

1) Allez dans bin/Debug et dans votre dossier d’application par ../../ puis vers votre image.

  <Image>
      <Image.Source>
           <BitmapImage  UriSource="../../images/jamsnaps-dark.png" />
      </Image.Source>
   </Image>

2) Compilez vos images en tant que contenu à partir des propriétés du menu contextuel du fichier image, puis une fois compilées, elles seront placées dans debug . Je ne me souviens pas si vous devez également leur dire de copier local également dans les propriétés (je ne suis pas près d'un ordinateur pour le moment, donc je ne peux pas vérifier. 

1
eran otzap
  1. Ajouter l'image à votre répertoire de projet
  2. Dans l'explorateur de solutions, cliquez avec le bouton droit de la souris sur l'image et sélectionnez Include in Project.

L'action de construction doit être définie sur Resource par défaut.

Vous pouvez alors commencer à utiliser le chemin d’image par rapport à la racine, par exemple. images/text.jpg si vous le mettez dans un dossier appelé images.

0
codeafin