OneByT
OneByT

Reputation: 23

Adding multiple Resource Dictionaries dynamic to my WPF-Project

I need some help with Resource Dictionaries in WPF. I have multiple .dll's and in each dll are one or more Resource Dictionaries. The problem is I dont know the name or the location from the Resource Dictionaries in the DLL. Now Im looking for a way to add all these Resource Dictionaries in the Code Behind in my Main.xaml

Maybe something with reflection in the assembly?

ResourceDictionary resourceDictionary = new ResourceDictionary();
resourceDictionary.Source = new Uri("Dictionary1.xaml", UriKind.Relative);

ResourceDictionary resourceDictionary2 = new ResourceDictionary();
resourceDictionary.Source = new Uri("Dictionary2.xaml", UriKind.Relative);

resourceDictionary2.MergedDictionaries.Add(resourceDictionary);

Resources.MergedDictionaries.Add(resourceDictionary2);

But it only add 1 Resource Dictionary... Can you help me?

Upvotes: 2

Views: 1035

Answers (2)

tabby
tabby

Reputation: 1918

Try this:

ResourceDictionary resourceDictionary = new ResourceDictionary
{
     Source = new Uri("Dictionary1.xaml", UriKind.Relative)
};

ResourceDictionary resourceDictionary2 = new ResourceDictionary
{
     Source = new Uri("Dictionary2.xaml", UriKind.Relative)
};

Application.Current.Resources.MergedDictionaries.Add(resourceDictionary );
Application.Current.Resources.MergedDictionaries.Add(resourceDictionary2 );

Upvotes: 1

Noam M
Noam M

Reputation: 3164

I think your logic is wrong. Try

//Load #1 ResourceDictionary
ResourceDictionary resourceDictionary = new ResourceDictionary();
resourceDictionary.Source = new Uri("Dictionary1.xaml", UriKind.Relative);

//Load #2 ResourceDictionary
ResourceDictionary resourceDictionary2 = new ResourceDictionary();
resourceDictionary2.Source = new Uri("Dictionary2.xaml", UriKind.Relative);

//Merge #1 & #2 
resourceDictionary2.MergedDictionaries.Add(resourceDictionary);

//Add to Resources
Resources.MergedDictionaries.Add(resourceDictionary2);

Upvotes: 1

Related Questions