Короткий ответ: это невозможно.
Объяснение Есть много подобных вопросов: WPF Window Style not working at runtime
WPF window style not being applied
How to set default WPF Window Style in app.xaml?
TargetType в стилях не управляют производных типов.
Вы не создаете класс Window, а класс, полученный из него. Если вы создали экземпляр класса Window, он должен иметь стиль.
Dim frm As New Window
frm.Show()
Однако, это не работает (по крайней мере в 4.0), стили из моего Application.xaml не применяются во время выполнения. Обходные являются:
Загрузка словаря ресурсов во время выполнения:
Dim app As Application = New Application()
Application.Current.Resources.MergedDictionaries.Add(Application.LoadComponent(New Uri("/MyProject;component/MainDictionary.xaml", UriKind.Relative)))
Создать стиль во время выполнения
Sub Main()
Dim app As Application = New Application()
Dim sty As Style
sty = New Style With {.TargetType = GetType(Window)}
sty.Setters.Add(New Setter With {.Property = Control.BackgroundProperty, .Value = Brushes.Red})
Application.Current.Resources.Add(GetType(Window), sty)
Dim frm As New Window
frm.ShowDialog()
End Sub
И окно возжелал фон. Я думаю, что это ошибка.
Я отказываюсь от этого. См. Это сообщение для получения дополнительной информации http://stackoverflow.com/questions/431940/how-to-set-default-wpf-window-style-in-app-xaml/460750#460750. Дайте мне знать, если вам удастся это решить. – Phil