Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot find resource dictionary in WPF application

Tags:

c#

wpf

xaml

I'm in the process of building a WPF application and ran into an error when trying to reference a resource dictionary. Inside my WPF application project I have a folder called "Styles" to contain all the xaml style templates for my app:

VS2010 Solution Explorer

In my app.xaml file I have this:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Styles/MetroTheme.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

However, when I hover over the source property I get an error saying "An error occurred while finding the resource dictionary "Styles/MetroTheme.xaml". I can see the xaml file inside the folder both in Visual Studio and in the file system.

I have also tried "/Styles/MetroTheme.xaml" and a pack uri for the source property, both with no success. Any idea why I'm getting this file not found error?

like image 838
Steven Ball Avatar asked Jun 15 '12 15:06

Steven Ball


2 Answers

Make sure that the build action for MetroTheme.xaml is set to Page.

enter image description here

like image 82
Andy Avatar answered Oct 23 '22 10:10

Andy


I had the same issue, but setting Build Action = Page did not solve for me. Turned out I needed to use the Pack URI Format. So,

<ResourceDictionary Source="pack://application:,,,/Styles/MetroTheme.xaml"/>

EDIT

Turns out the above will eliminate build error but still results in runtime error. I needed to include full assembly specification for complete resolution (even though all files are in same assembly):

<ResourceDictionary Source="pack://application:,,,/WpfApplication10;component/Styles/MetroTheme.xaml"/>
like image 39
nmarler Avatar answered Oct 23 '22 09:10

nmarler