31 votes

WPF - L'image "ne fait pas partie du projet ou son action de construction n'est pas définie comme une ressource".

J'ai un projet qui nécessite une image dans la fenêtre. Il s'agit d'une image statique que j'ai ajoutée via 'Add>Existing Item'. Elle existe dans la racine du projet.

Je fais référence à l'image dans une page de test comme suit -

<Page x:Class="Critter.Pages.Test"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="Test">
      <Image Source="bug.png"/>
</Page>

Le problème est que je reçois un message disant qu'il ne peut pas être trouvé ou que son action de construction n'est pas une ressource, mais il existe bien et son action de construction EST une ressource. Si je crée une nouvelle application et que je la lance dans une fenêtre, elle fonctionne bien.

Toute aide serait la bienvenue.

0 votes

L'image se trouve-t-elle dans un sous-dossier ?

0 votes

Non. L'image est dans le Root du projet.

0 votes

L'action de construction est-elle définie comme une ressource ou une ressource intégrée ?

33voto

Cameron MacFarland Points 27240

Essayez de faire une reconstruction complète, ou supprimez les fichiers de construction et construisez ensuite le fichier.

Visual Studio ne détecte pas toujours les modifications apportées aux ressources, et il peut être difficile de le faire recompiler.

Essayez également d'utiliser un URI complet, car cela m'a aidé lorsque j'ai eu le même problème. Quelque chose comme

pack://application:,,,/MyAssembly;component/bug.png

0 votes

Merci mec. Ça a marché à merveille ! Je ne comprends toujours pas les URIs du Pack mais la reconstruction complète a fait l'affaire.

26voto

sona jha Points 81

Cliquez avec le bouton droit de la souris sur le fichier image Cliquez sur propriété Sélectionnez Build Action to Resource Nettoyer et construire la solution Exécuter la solution

Vous obtiendrez tout.

17voto

brianstewey Points 517

J'ai eu le même problème. Le nettoyage et la reconstruction de la solution n'ont pas résolu le problème, alors j'ai redémarré Visual Studio et ça a marché. Espérons que Visual 2010 corrige ce problème et les nombreux autres qui plagent wpf dans Visual 2008.

0 votes

Merci - c'était la solution !

13voto

Ben Gribaudo Points 2023

Essayez de commencer le chemin vers votre image par un "/" :

<Image Source="/bug.png"/>

4voto

towrywang Points 11

Il existe une solution à votre question

<Image Source="/WpfApplication4;component/images/sky.jpg" />

"composant" n'est pas un dossier !

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