you can merge the theme in App.Xaml like this:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="defaulttheme.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
The defaulttheme.xaml file has to be in the root of your project. If you like to build your own project for th theme you can merge the Resources like this:
<ResourceDictionary Source="/MyThemeProject;component/defaulttheme.xaml" />
here defaulthteme.xaml must also be in MyThemeProject in the root and do not forget to add add reference to that project from your main project.
To build a structure you can add folders as you like.
<ResourceDictionary Source="/MyThemeProject;component/Folder1/Folder2/defaulttheme.xaml" />
To switch the themes first clear the MergedDictionaries and then add the new theme
NewTheme = new Uri(@"/MyThemeProject;component/folder1/Folder2/bluetheme.xaml", UriKind.Relative);
Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(NewTheme);
Regards
flusser