web-dev-qa-db-fra.com

Images de référence stockées dans la DLL externe à l'aide de WPF

J'ai une application WPF et un projet de bibliothèque de classe (DLL). Dans ma DLL, j'ai un dossier d'images avec certains fichiers .png définis comme ressource.

Je veux faire référence et afficher l'image à l'aide de l'application principale WPF.

Des idées? Je veux faire cela dans le XAML et non le code derrière si possible.

Ta, Matt.

35
Matt B

En supposant que vous référenciez la bibliothèque de classes à partir de l'application WPF, vous pouvez faire référence et afficher l'image dans l'application WPF avec le XAML suivant:

<Image Source="/ClassLibraryName;Component/images/myimage.png"/>

La chose importante ici est "ClassLibraryName" qui est le nom de montage pour votre bibliothèque de classe. "/Images/myimage.png" est le chemin de votre image.

Vous pouvez en savoir plus sur WPF Pack URIS ici .

60
b-rad

Cela n'a pas fonctionné pour moi:

<Image Source="/ClassLibraryName;Component/images/myimage.png"/>

Mais cela a fait:

<Image Source="pack://application:,,/ClassLibraryName;Component/images/myimage.png"/>

J'ai également nettoyé et reconstruit avant cela, mais seulement après avoir ajouté cette addition, les images récupérées.

4
prw56

J'utilisais déjà ci-dessous mais je n'ai toujours pas travaillé.

<Image Source="/ClassLibraryName;Component/images/myimage.png"/>

J'ai changé la "action de construction" à "ressource" mais je n'ai toujours pas fonctionné.

Enfin, après nettoyer la solution et reconstruire tout, cela a fonctionné !!!

Configuration: Microsoft Visual Studio Enterprise 2015, Windows 10 Pro, C #

3
icernos

Premièrement dans le projet de bibliothèque de classe définie images (images réelles) Type de construction aux ressources. Donnez une référence à cette banque de classe au projet chaque fois que vous souhaitez utiliser des images. Lorsque vous voulez ce code d'image comme suit pour WPF.

<Image Source="pack://application:,,,/YOUR_DLL_FILE_NAME;Component/Images/Splashscreen.png" Stretch="Fill" />

Les images sont le nom du dossier

0
khushal dawda