I am trying to set the default Style for every window in my WPF Windows application in my app.xaml. So far i have this in app.xaml:
<Application.Resources>
<ResourceDictionary>
<Style x:Key="WindowStyle" TargetType="{x:Type Window}">
<Setter Property="Background" Value="Blue" />
</Style>
</ResourceDictionary>
</Application.Resources>
I can get the window to appear with this style when running the app (but not in VS designer) by specifically telling the window to use this style via:
Style="{DynamicResource WindowStyle}
This works, but is not ideal. So how do I:
- Have all windows automatically use the style (so i don't have to specify it on every window)?
- Have VS designer show the style?
Thanks!
Best Answer
To add on to what Ray says:
For the Styles, you either need to supply a Key/ID or specify a TargetType.
If you supply a TargetType, all instances of that type will have the style applied. However derived types will not... it seems.
<Style TargetType="{x:Type Window}">
will not work for all your custom derivations/windows.<Style TargetType="{x:Type local:MyWindow}">
will apply to only MyWindow. So the options are.
So I'd say explicitly specified styles are the least work. You can anyways change aspects of the Style centrally.