inherit style from default style

@Aphelion has the correct answer. I would like to add that the order in which items are defined in the ResourceDictionary matter.

If you override the default style of a slider and you want to base another slider style on that, you must declare the "based on" slider after the override style.

For example, if you do this:

<Style x:Key="BlueSlider" TargetType="{x:Type Slider}" BasedOn="{StaticResource {x:Type Slider}}">
    <Setter Property="Background" Value="Blue"/>
</Style>

<Style TargetType="{x:Type Slider}">
    <Setter Property="Foreground" Value="Yellow"/>
</Style>

BlueSlider will have a blue background with the default (white) foreground.

But if you do this:

<Style TargetType="{x:Type Slider}">
    <Setter Property="Foreground" Value="Yellow"/>
</Style>

<Style x:Key="BlueSlider" TargetType="{x:Type Slider}" BasedOn="{StaticResource {x:Type Slider}}">
    <Setter Property="Background" Value="Blue"/>
</Style>

BlueSlider will have a blue background and a yellow foreground.


Use the type of the control you would like to extend

BasedOn="{StaticResource {x:Type TextBox}}"

Full example:

<Style x:Key="NamedStyle" TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
    <Setter property="Opacity" value="0.5" />
</Style>

Tags:

Wpf

Xaml

Styling