Reference images stored in external dll using wpf

32,642

Solution 1

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.

Solution 2

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.

Solution 3

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#

Solution 4

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

Share:
32,642
Matt B
Author by

Matt B

Updated on November 15, 2020

Comments

  • Matt B
    Matt B over 3 years

    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.

  • Matt B
    Matt B about 14 years
    Superb. What does the "Component" have to be in there for?
  • romu
    romu almost 14 years
    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.
  • Termato
    Termato over 10 years
    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?
  • Termato
    Termato over 10 years
    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.
  • AL - Divine
    AL - Divine about 7 years
    This works but we have to make sure that the referenced image file has the "Build Action" set to "Resource"
  • Reahreic
    Reahreic about 3 years
    This works for me at build time, but the image isn't updated in the design view.
  • Reahreic
    Reahreic about 3 years
    Additionally, how can I make it that the referenced image can be selected via the dropdown in properties