Comment puis-je régler le WPF BitmapImage UriSource propriété d'un chemin relatif?
Je suis de chargement d'une image dans WPF par l'aide de la BitmapImage classe. Mon code fonctionne parfaitement quand je donne un chemin absolu pour le UriSource mais pas quand je l'ai essayer et d'utiliser un chemin relatif.
Mon XAML est:
<Image Width="50" Name="MemberImage" HorizontalAlignment="Left">
<Image.Source>
<BitmapImage DecodePixelWidth="50" UriSource="questionmark.jpg" />
</Image.Source>
</Image>
L'questionmark.jpg est ajouté au projet avec une Action de génération de Ressources et de Copie vers le Répertoire de Sortie ensemble pour Copier toujours. L'erreur que j'obtiens est "Le fichier [nom de fichier] ne fait pas partie du projet ou de ses" Construire l'Action " propriété n'est pas définie à 'Ressource'". Cela fonctionne lorsque j'utilise un chemin absolu pour le UriSource mais qui de toute évidence ne peut pas faire.
Comment dois-je définir ma UriSource dans le code XAML?
OriginalL'auteur Val M | 2010-07-05
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que vous avez besoin de copier l'image vers le répertoire de sortie une fois que c'est dans la ressource.
Bonne façon de spécifier est
Il suffit de remplacer
ApplicationNamespace
avec votre application espace de nomset
Images/App/image.png
avec votre chemin de l'image dans le projetUriSource = "pack://application:,,,/ApplicationNamespace"
et pasUriSource = "pack://application:,,,/ApplicationNamespace;component/Images/App/image.png"
?OriginalL'auteur Tae-Sung Shin
Des fichiers d'Image avec les options suivantes dans les propriétés
Build Action=Contenu
Copie vers le Répertoire de Sortie=Copier si plus récent
Référence:
Xaml Bitmap UriSource - chemin d'accès absolu de travaux, le chemin relatif ne doit pas, pourquoi?
OriginalL'auteur Antonio N
Je ne peux pas reproduire le problème sur mon ordinateur:
Fonctionne parfaitement ici, même après le déplacement de l' .exe et renommer le jpg. Quelque chose d'autre doit être à vous mordre!
Si je change l'Action de Construire le Contenu du fichier est copié, mais la version dans le répertoire de sortie n'est pas utilisable à cause de la même erreur dans le code XAML "[nom de fichier] ne fait pas partie du projet ou de ses "Construire l'Action" propriété n'est pas définie de "Ressource"." Copier manuellement dans le répertoire de sortie, en laissant le jeu de "Ressource" dans la solution et de la reconstruction, le projet donne la même erreur.
Lorsque vous définissez l'action de construire de "ressource" le jpg est incorporé dans le .exe ou .dll n'est donc pas séparément identifiable. Donc, c'est le résultat attendu. Il semble que vous n'avez pas d'inclure le fichier dans votre projet: cliquez sur le menu Projet, puis choisissez "Ajouter un élément existant'. Que doit résoudre.
Dabblernl, il est ajouté à mon projet que j'ai à l'origine de l'ajouter - donc, il y a une autre raison pourquoi il n'est pas disponible.
Je suis désolé, Val, je ne peux pas reproduire l'erreur. Recommencer avec un nouveau petit projet et de voir ce qui se passe ensuite. Si cela fonctionne comme prévu, essayez d'ajouter des fonctionnalités à ce nouveau projet qui en font plus ressembler au véritable projet. J'espère que vous tomberez sur quel est le problème alors. Bonne chance!
OriginalL'auteur Dabblernl