Wpf - chemin source de l'image relative
Je vais avoir des problèmes pour la définition de la source pour les images dans mon application Wpf. J'ai une Image où la source est liée à la SourceUri propriété de le DataContext de l'objet, comme ceci:
<Image Source="{Binding SourceUri}"></Image>
Maintenant, je ne sais pas ce à mettre sur le SourceUri propriété de mon objet. Réglage de la complète chemin d'accès absolu ("c:/etc/image.jpg") elle s'affiche bien, mais évidemment, je veux mettre le chemin d'accès relatif à la place. Mes images sont stockées dans un dossier de Ressources qui est dans le même dossier que mon dossier de l'application. À la fin, ces images peuvent venir de n'importe où, afin de les ajouter au projet n'est pas vraiment une option.
J'ai essayé le chemin relatif au dossier de l'application, et par rapport au chemin de travail (debug-dossier). Aussi essayé d'utiliser le "pack://.." syntaxe sans chance, mais lisez que ce ne serait pas n'importe quel point de la faire.
Tous les conseils sur ce que je devrais essayer?
source d'informationauteur stiank81
Vous devez vous connecter pour publier un commentaire.
Peut-être que vous pourriez faire de l'SourceUri propriété DataContext objet un peu plus intelligents, et de déterminer ce que le dossier de l'application est, et le retour d'un chemin d'accès absolu sur cette base. Par exemple:
Il y a une méthode pratique dans le Système.IO.Le chemin qui peut vous aider avec ceci:
Il doit retourner 'C:\Folders\MoreFolders\Resources\image.jpg" ou quel que soit le chemin d'accès complet est à votre contexte. Il utilisera le dossier de travail en cours comme point de départ.
Lien vers la documentation MSDN sur GetFullPath.
Après quelques moments frustrants essayer avec
et
et
J'ai résolu ce mettre mon propre convertisseur:
C#, côté:
XAML côté:
Acclamations,
Sérgio
De l'environnement.CurrentDirectory vous montrera le dossier de la .exe est stocké dans (sauf si vous définissez manuellement un .CurrentDirectory - mais alors nous pouvons supposer que vous savez déjà où il est).