See intro blogpost here.
When applying default theme and template to custom controls that you declared in "/Themes/Generic.xaml" it's done differently in Silverlight and WPF:
public class MyControl : Control
{
public MyControl()
{
#if SILVERLIGHT
this.DefaultStyleKey = typeof(MyControl);
#endif
}
static MyControl() {
#if !SILVERLIGHT
DefaultStyleKeyProperty.OverrideMetadata(
typeof(HoverControl),
new FrameworkPropertyMetadata(
typeof(HoverControl)));
#endif
}
}
Also, in the WPF Assembly, you need to register the theme file in AssemblyInfo.cs This is done with the following line of code:
[assembly: ThemeInfo(ResourceDictionaryLocation.None,ResourceDictionaryLocation.SourceAssembly)]
Note: This code is usually added automatically when you create a new WPF project.
Next: WPF vs. Silverlight - Part 2 - XamlReader