“The WPF mindset”: WPF elements are styled by the WPF engine walking the visual tree up, not down (like the CSS engine does) (courtesy of SO user Sebastian Edelmeier).
To have CSS-like styling, see this: http://www.codeproject.com/Articles/36499/Using-CSS-Selectors-for-Styling-in-WPF
And now, the current rules:
- Local property set has higher priority
- Within a style, triggers take precedence
- Local styles have higher priority than global styles
To merge multiple styles into one, define a markup extension.
For in-depth information, refer to https://msdn.microsoft.com/en-us/library/ms743230.aspx
Another good article: https://wpf.2000things.com/2010/11/22/133-where-a-dependency-property-gets-its-value/
To properly define styles at app root level and then add slight variations to them, use the BasedOn attribute.