Я знаю, что этот вопрос довольно старый, но я все равно отвечу.
Вот код, который отлично работает для меня в C # 4.0.
Он просто дублирует стиль для всех подклассов в словаре ресурсов.
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
if (this.Resources.Contains(typeof(Window)))
{
var types = Assembly.GetEntryAssembly().GetTypes();
var subTypes = types.Where(x => x.IsSubclassOf(typeof(Window)));
Style elementStyle = (Style)this.Resources[typeof(Window)];
foreach (Type subType in subTypes)
{
if (!this.Resources.Contains(subType))
{
this.Resources.Add(subType, elementStyle);
}
}
}
base.OnStartup(e);
}
}
Теперь ваш стиль из App.xaml должен работать для всех окон.
p.s. Да, я знаю, что это не самый чистый или быстрый способ, но он работает. :)