Dividers in WinUI Slider

10 Mar 20228 minutes to read

This section explains about how to show the dividers in the slider.

Show Dividers

The ShowDividers property is used to render the dividers on the track. The default value of the ShowDividers property is false. It is a shape, which is used to represent the major interval points of the track.

For example, if Minimum is 0, Maximum is 100, and Interval is 10, the slider will render the dividers at 0, 10, 20 and so on.

<slider:SfSlider Value="50"
                 Interval="10"
                 ShowDividers="True" />
SfSlider sfSlider = new SfSlider();
sfSlider.Value = 50;
sfSlider.Interval = 10;
sfSlider.ShowDividers = true;
this.Content = sfSlider;

Slider with dividers

Dividers Height and Width

You can change the divider height and width of the RangeSlider using the DividerHeight and DividerWidth properties respectively.

<slider:SfSlider Value="50"
                 Interval="10"
                 ShowDividers="True"
                 DividerHeight="4"
                 DividerWidth="4" />
SfSlider sfSlider = new SfSlider();
sfSlider.Value = 50;
sfSlider.Interval = 10;
sfSlider.ShowDividers = true;
sfSlider.DividerHeight = 4;
sfSlider.DividerWidth = 4;
this.Content = sfSlider;

Slider with divider height and width customization

Divider Stroke Thickness and Stroke

You can change the divider stroke thickness of the slider using the DividerStrokeThickness property. The default value of DividerStrokeThickness is 0. Also, you can change the divider stroke of the slider using the DividerStroke property.

<slider:SfSlider Value="50"
                 Interval="10"
                 ShowDividers="True"
                 DividerHeight="10"
                 DividerWidth="10"
                 DividerStrokeThickness="2"
                 DividerStroke="Red" />
SfSlider sfSlider = new SfSlider();
sfSlider.Value = 50;
sfSlider.Interval = 10;
sfSlider.ShowDividers = true;
sfSlider.DividerHeight = 10;
sfSlider.DividerWidth = 10;
sfSlider.DividerStrokeThickness = 2;
sfSlider.DividerStroke = new SolidColorBrush(Colors.Red);
this.Content = sfSlider;

Slider with divider stroke customization

Divider Fill

You can change the divider fill of the slider using the DividerFill property.

<slider:SfSlider Value="50"
                 Interval="10"
                 ShowDividers="True"
                 DividerHeight="10"
                 DividerWidth="10"
                 DividerFill="#ff7979" />
SfSlider sfSlider = new SfSlider();
sfSlider.Value = 50;
sfSlider.Interval = 10;
sfSlider.ShowDividers = true;
sfSlider.DividerHeight = 10;
sfSlider.DividerWidth = 10;
sfSlider.DividerFill = new SolidColorBrush(ColorHelper.FromArgb(255,255, 121, 121));
this.Content = sfSlider;

Slider with divider fill customization

Divider Template

Setting a Template for Dividers

The DividerTemplate property allows you to define the data template for the divider’s as shown in the following code sample.

<DataTemplate x:Key="DividerTemplate">
    <Rectangle Height="{Binding DividerHeight}"
               Width="{Binding DividerWidth}"
               Fill="{ThemeResource SystemAltHighColor}"
               Stroke="{ThemeResource SystemAccentColorDark1}"
               StrokeThickness="{Binding DividerStrokeThickness}" />
</DataTemplate>

<slider:SfSlider Value="50"
                 Interval="10"
                 ShowDividers="True"
                 DividerHeight="10"
                 DividerWidth="10"
                 DividerStrokeThickness="2"
                 DividerTemplate="{StaticResource DividerTemplate}">
</slider:SfSlider>
SfSlider sfSlider = new SfSlider();
sfSlider.ShowDividers = true;
sfSlider.DividerHeight = 10;
sfSlider.DividerWidth = 10;
sfSlider.DividerStrokeThickness = 2;
sfSlider.DividerTemplate = this.Resources["DividerTemplate"] as DataTemplate;
sfSlider.Value = 50;
this.Content = sfSlider;

Slider with divider template customization

NOTE

Its DataContext is SliderBase.

Setting a Active Template for Dividers

The ActiveDividerTemplate property allows you to define the data template for the divider’s as shown in the following code sample.

<DataTemplate x:Key="ActiveDividerTemplate">
    <Rectangle Height="10"
               Width="10"
               Fill="{ThemeResource SystemAltHighColor}"
               Stroke="{ThemeResource SystemAccentColorDark1}"
               StrokeThickness="2" />
</DataTemplate>

<slider:SfSlider Value="50"
                 Interval="10"
                 ShowDividers="True"
                 DividerHeight="5"
                 DividerWidth="5"
                 ActiveDividerTemplate="{StaticResource ActiveDividerTemplate}">
</slider:SfSlider>
SfSlider sfSlider = new SfSlider();
sfSlider.ShowDividers = true;
sfSlider.DividerHeight = 5;
sfSlider.DividerWidth = 5;
sfSlider.ActiveDividerTemplate = this.Resources["ActiveDividerTemplate"] as DataTemplate;
sfSlider.Value = 50;
this.Content = sfSlider;

Slider with active divider template customization