Hello Brian Swiger,
You have two options on creating themes:
1. Open our Themes solution and directly modify the xaml in files.
2. Create new project and adding styles (xaml) for controls you want to style.
When using option 1 all you have to do is modify xaml like you need and build the project. In your case you will get new Telerik.Windows.Themes.Vista.dll assembly. Then in your application just add in the app constructor:
|StyleManager.ApplicationTheme = new VistaTheme();
This will be enough to apply the theme globally to all RadControls. However this will not modify the style for Microsoft controls like CheckBox or Button. You will have to explicit set its theme using Theme property:
|<CheckBox Context="Test" telerik:StyleManager.Theme="Vista" />
You will have to do this for all non RadControls.
Option 2 is when you create you custom theme project that doesn't follow the approach from our themes.
What you need to do is create xaml files for controls that you want to style then combine them in one file (like generic.xaml) using ResourceDictionary.MergedDictionaries.
Then you create new Theme object with source pointing to the generic.xaml file (that merges all your xaml files from the theme project) like this:
| new Theme(Uri("/Telerik.Windows.Themes.CustomTheme;component/Themes/generic.xaml", UriKind.Relative));
Again it will not modify non Telerik controls styles so you have to change their themes manually (like in Option 1).
The tricky part when using option 2 is that you should have references to all assemblies that you are styling. This means that if you have Style for RadMenu in your theme project you should have reference in Telerik.Windows.Controls.Navigation.dll in your application or you will get an exception.
There is 3 option where you could create new theme project but following our approach - you will have Telerik.Windows.Control.xaml file that will merge only styles for controls declared in Telerik.Windows.Control.dll assembly, Telerik.Windows.Control.Input.xaml file merging only styles for controls declared in Telerik.Windows.Control.Input.dll assembly etc.
Then you can inherit from Theme project and set Theme location attribute to BuiltIn like this:
|public class CustomTheme : Theme
| public CustomTheme()
| this.Source = new Uri
| // AssemblyName ; generic.xaml is irrelevant because when there is ThemeLocation.BuiltIn attribute because we are modifing the Source property in Silverlight
I hope that this will clarify the theming mechanism.
Let us know if you need more help.
the Telerik team