Два других ответа верны ... но не полны. Согласно этому посту (и мой опыт решения этой проблемы) есть 4 вещи, которые нужно проверить: (по какой-то причине блоки кода в этом посте не остались бы отформатированными, если бы я использовал цифры или тире ... так букв это)
A. Шаблон и стили элементов управления должны находиться в файле Generic.xaml
в папке с именем Themes
в корневом каталоге вашего проекта.
B. Убедитесь, что ваши пространства имен правильны в Generic.xaml
C. Установите ключ стиля в конструкторе вашего элемента управления. Также настоятельно рекомендуется поместить следующее в статический конструктор.
static YourControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(YourControl), new FrameworkPropertyMetadata(typeof(YourControl)));
}
D. Убедитесь, что в вашем файле Assemblyinfo.cs
указано следующее
[assembly: ThemeInfo(ResourceDictionaryLocation.None,
//where theme specific resource dictionaries are located
//(used if a resource is not found in the
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly
//where the generic resource dictionary is located
//(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries)
)]