Le chargement dynamique de ressources dictionnaire des fichiers d'une application wpf donne une erreur
Je suis en train d'ajouter un fichier de ressources xaml dynamiquement à l'aide de l'instruction,
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("resources/leaf_styles.xaml", UriKind.Relative) });
C'est la levée d'une exception, Ne peut pas localiser la ressource 'ressources/leaf_styles.xaml'.
J'ai ajouté le leaf_styles.fichier xaml pour le projet sous dossier de la ressource et de la BuildAction est réglé sur "Contenu", CopyAlways est définie sur True. Encore, j'obtiens cette erreur. Peut-on m'aider à sortir de pointage quoi de mal??
Informations supplémentaires -
- Je ne veux pas intégrer le fichier xaml comme une ressource
- Le projet actuel est un .net 3.5 projet de bibliothèque de classes
- Ci-dessus mergedictionary déclaration est rédigée dans une classe appartenant à un même projet de
- J'ai aussi ajouté le [assembly: AssemblyAssociatedContentFile("ressources/leaf_styles.xaml")] manuellement une fois, j'ai pensé que ce n'est pas de travail (pour les tests)
Mise à jour
Si je vous le donne comme un absolu emplacement, il fonctionne correctement.
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri(@"D:\foo\trunk\bin\resources\leaf_styles.xaml", UriKind.Absolute) });
Cela fonctionne si vous lui donner un chemin absolu (juste pour le test)?
Ouais, si je lui donner un chemin absolu, il est de travail. Application.Actuel.Les ressources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri(@"D:\foo\trunk\bin\resources\leaf_styles.xaml", UriKind.Absolue) });
Ouais, si je lui donner un chemin absolu, il est de travail. Application.Actuel.Les ressources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri(@"D:\foo\trunk\bin\resources\leaf_styles.xaml", UriKind.Absolue) });
OriginalL'auteur sudarsanyes | 2011-05-17
Vous devez vous connecter pour publier un commentaire.
Enfin, il a travaillé. Voici ce que j'ai fait,
Changé l'Uri de schéma de
OriginalL'auteur sudarsanyes
Pour charger un fichier de contenu, vous pouvez appeler la GetContentStream méthode de la classe d'Application, le passage d'un pack URI qui identifie le contenu du fichier.
Caisse
http://msdn.microsoft.com/en-us/library/aa970494.aspx#Content_Files
MODIFIER
Je l'ai fait avec succès comme ce
Vérifier mon montage...
le GetContentStream est de retour moi "null". Je suppose que cela a à voir avec le type de projet (!?!)
Je suppose que cela a quelque chose à voir avec l'Uri.Vérifiez si vous avez paramétré l'action de génération de contenu et le copier vers le répertoire de sortie de toujours copier
ouais, une double vérification. ne fonctionne toujours pas...
OriginalL'auteur biju
J'ai rencontré le même "manque de ressources" du problème et grattais la tête pendant des heures. Puis j'ai réalisé que mon nom d'assembly contient les points (.) et changé la ressource nom de l'assembly, testé à nouveau et cela a fonctionné. C'était un 16x16 fichier image png qui ı voulu charger. Mais je vois que pointillés de l'assemblée les noms des causes d'erreur pour soma cas et ne provoque pas d'erreur pour les autres cas.
J'ai utilisé le même code pour les deux cas, mais les résultats sont différents. Je ne sais pas si c'est un wpf bug.
OriginalL'auteur NthDeveloper