2010-04-29 14 views
2

Je souhaite exécuter mon application wpf "A" à partir d'un autre assemblage "B".Exécuter l'application WPF à partir d'un autre assemblage

J'utilise le code suivant:

static void main() 
{ 
    var app = new A.App(); 
    app.InitializeComponent(); 
    app.Run(); 
} 

quand je lance mon application, je suis l'erreur suivante:

Cannot convert string '/Resources/icon.gif' in attribute 'Icon' to object of type 'System.Windows.Media.ImageSource'. Cannot locate resource 'resources/icon.gif'. Error at object 'MainWindow' in markup file 'A;component/shell/shellview.xaml'. 

Comment puis-je transférer des images B et des ressources d'information à? Merci!

+0

que l'on ne vous utilisez finalement? – Archie

Répondre

1

Utilisez-vous l'URI Pack?

Vous pouvez utiliser la syntaxe URI du pack pour accéder aux ressources intégrées dans d'autres assemblys. L'exemple suivant illustre la syntaxe URI pack de base pour accéder à des ressources intégrées dans d'autres assemblées:

Pack

: // application: ,,, /; // composant

Ainsi, si vous vouliez trouver un fichier nommé mypic .bmp dans le dossier MonDossier dans un autre assembly nommé myAssembly, utilisez l'URI paquet suivant:

pack: // application: ,,,/myAssembly; composant/myFolder/myPic.bmp

Comme avec d'autres pack URI, si le fichier incorporé n'existe pas dans un dossier, le dossier est omis dans l'URI.

Essayez d'utiliser quelque chose comme ceci:

<ResourceDictionary.MergedDictionaries> 
<ResourceDictionary 
Source="CustomControls.Controls;component\Themes/...." 
/> 
</ResourceDictionary.MergedDictionaries> 
+0

de cette façon, je dois modifier toutes les références de ressources dans mon application wpf "A". Au lieu de cela, il serait bon s'il y a un moyen de modifier le chemin de recherche relatif utilisé par A – Ricibald

+0

Voir la réponse modifiée – Archie