Matt B
Matt B

Reputation: 761

Reference images stored in external dll using wpf

I have a wpf application and a class library(dll) project. In my dll I have an images folder with some .png files set as Resource.

I want to reference and display the image using the wpf main application.

Any ideas? I want to do this in the xaml not the code behind if at all possible.

Ta, Matt.

Upvotes: 42

Views: 35766

Answers (4)

khushal dawda
khushal dawda

Reputation: 11

First In Class Library Project Set Images(actual Images) Build Type To Resources. Give this Class Library Reference to project whenever you want to use images. When u want this images code as Follow for wpf.

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

Images Is FOLDER NAME

Upvotes: 1

icernos
icernos

Reputation: 405

I was already using below but still didn't work.

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

I changed the "Build Action" to "Resource" but still didn't work.

Finally, after cleaning the solution and rebuilding all, it worked!!!

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

Upvotes: 5

prw56
prw56

Reputation: 324

This did not work for me:

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

But this did:

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

I also cleaned and rebuilt prior to this, but only after adding this addition bit were the images retrieved.

Upvotes: 10

b-rad
b-rad

Reputation: 1001

Assuming you reference the class library from the WPF application you can reference and display the image in the WPF application with the following XAML:

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

The important thing here is "ClassLibraryName" which is the assembly name for your class library. "/images/myimage.png" is the path to your image.

You can find out more about WPF pack URIs here.

Upvotes: 65

Related Questions