Ответ 1
Вам нужно добавить сеттеры в стиль, а не использовать 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);
}