Search code examples
wpfxamlcolorsseparator

How to change the color of the a WPF `<Separator />`?


I use <Separator /> in my form but don't know how to change its color. None of Border /Foreground/Background does exist. Plese help.


Solution

  • Use styles

        <Style x:Key="MySeparatorStyle" TargetType="{x:Type Separator}">
            <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}"/>
            <Setter Property="Margin" Value="0,2,0,2"/>
            <Setter Property="Focusable" Value="false"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Separator}">
                        <Border 
                            BorderBrush="{TemplateBinding BorderBrush}" 
                            BorderThickness="{TemplateBinding BorderThickness}" 
                            Background="{TemplateBinding Background}" 
                            Height="1" 
                            SnapsToDevicePixels="true"/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    

    A seperator is just a border element and now you can change its appearance any way you like?