Вы не разместили создание своего стиля, возможно, там что-то не хватает?
Существует another similar answer на StackOverflow, который является очень хорошим и короткий пример создания и настройки стиля в коде:
Q: Кто-нибудь знает, как создать МОФ стиль в коде позади, я не могут найти что-либо в Интернете или документах MSDN. Я попытался это, но он не работает:
A: Вам нужно добавить сеттеры в стиле, а не использовать RegisterName. Следующий код в событии Window_Loaded создаст новый стиль TextBlock, который станет стандартным для всех экземпляров TextBlock в окне. Если вы предпочитаете явно устанавливать его на одном конкретном TextBlock, вы можете установить свойство Style этого элемента управления, а не добавлять стиль в словарь ресурсов.
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Style style = new Style(typeof (TextBlock));
style.Setters.Add(new Setter(TextBlock.ForegroundProperty, Brushes.Green));
style.Setters.Add(new Setter(TextBlock.TextProperty, "Green"));
Resources.Add(typeof (TextBlock), style);
}
Стили должны быть созданы в XAML. И применяется также в XAML. Зачем заполнять codeBehind непонятными вещами. Попробуйте увидеть шаблон MVVM для WPF. http://csharperimage.jeremylikness.com/2010/04/model-view-viewmodel-mvvm-explained.html Вы заметите, что использование стиля в окне (или другом UserControl) не является хорошей практикой, конструктор. – meorfi
Кроме того, вот хороший учебник, который научит вас, как правильно создавать и использовать стили. http://www.wpftutorial.net/ :) BTW, в будущем вы никогда не создадите стили с C# .. Вы будете использовать шаблоны XAML (Стили или другие ресурсы) – meorfi
Зачем использовать C# вместо XAML для стилизации? Есть причина. Но я не могу описать здесь почему, в ограниченном комментарии из 500 символов. В общем, мне не нравится механизм XAML, но есть и много технических причин. – Lispwave