44

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.

4 Answers 4

67

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.

Sign up to request clarification or add additional context in comments.

8 Comments

Superb. What does the "Component" have to be in there for?
Ensure you have the "Build Action" for the resource set to "Resource" if you want to have the image embedded in the assembly. "Content" works as well if you don't want to have your images embedded.
If you have a Class Library, a WPF application and an MVC application; can both the WPF and MVC access those image files using that same code (considering it is XAML) OR would you have to hard code the directory for the MVC application?
I have found this: stackoverflow.com/questions/12882628/… to create a common repository for both applications, but the problem would be using it to upload files.
This works but we have to make sure that the referenced image file has the "Build Action" set to "Resource"
|
10

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.

Comments

5

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#

Comments

1

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.