Getting Started with .NET MAUI Range Selector

30 Sep 202215 minutes to read

This section explains the steps required to add the Range Selector control and its elements such as track, ticks, labels and tooltip. This section covers only basic features needed to know to get started with Syncfusion Range Selector.

Creating an application with .NET MAUI

Create a new .NET MAUI application in Visual Studio.

Create MAUI Application

Adding SfRangeSelector reference

The Syncfusion .NET MAUI components are available in nuget.org. To add the SfRangeSelector to your project, open the NuGet package manager in the Visual Studio, search for the Syncfusion.Maui.Sliders, and install it.

Create MAUI Application

Handler registration

In the MauiProgram.cs file, register the handler for the Syncfusion core.

  • C#
  • using Microsoft.Maui;
    using Microsoft.Maui.Hosting;
    using Microsoft.Maui.Controls.Compatibility;
    using Microsoft.Maui.Controls.Hosting;
    using Microsoft.Maui.Controls.Xaml;
    using Syncfusion.Maui.Core.Hosting;
    
    namespace RangeSelector
    {
        public static class MauiProgram
        {
            public static MauiApp CreateMauiApp()
            {
                var builder = MauiApp.CreateBuilder();
                builder
                .UseMauiApp<App>()
                .ConfigureSyncfusionCore()
                .ConfigureFonts(fonts =>
                {
                    fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                });
    
                return builder.Build();
            }
        }
    }

    Initialize Range Selector

    Import the SfRangeSelector namespace and initialize the Range Selector as shown below.

    <ContentPage
        . . .
        xmlns:sliders="clr-namespace:Syncfusion.Maui.Sliders;assembly=Syncfusion.Maui.Sliders">
        <sliders:SfRangeSelector />
    </ContentPage>
    using Syncfusion.Maui.Sliders;
    
    namespace GettingStarted
    {
        public partial class MainPage : ContentPage
        {
            public MainPage()
            {
                InitializeComponent();
                SfRangeSelector rangeSelector = new SfRangeSelector();
                content = rangeSelector;
            }
        }
    }

    Initialize RangeSelector

    Adding content to Range Selector

    The Content property will add the content to the Range Selector. Add any control within the Range Selector with this property. In most cases, the Charts will be added as a content.

    <ContentPage 
                 ...
                 xmlns:sliders="clr-namespace:Syncfusion.Maui.Sliders;assembly=Syncfusion.Maui.Sliders"
                 xmlns:charts="clr-namespace:Syncfusion.Maui.Charts;assembly=Syncfusion.Maui.Charts"
                 xmlns:local="clr-namespace:SliderTestbedSample.RangeSelector">
        
        <ContentPage.BindingContext>
            <local:ViewModel />
        </ContentPage.BindingContext>
    
        <sliders:SfRangeSelector Minimum="10"
                                 Maximum="20"
                                 RangeStart="13"
                                 RangeEnd="17">
            <charts:SfCartesianChart>
    
                <charts:SfCartesianChart.XAxes>
                    <charts:DateTimeAxis IsVisible="False"
                                        ShowMajorGridLines="False" />
                </charts:SfCartesianChart.XAxes>
    
                <charts:SfCartesianChart.YAxes>
                    <charts:NumericalAxis IsVisible="False"
                                         ShowMajorGridLines="False" />
                </charts:SfCartesianChart.YAxes>
    
                <charts:SfCartesianChart.Series>
                    <charts:SplineAreaSeries ItemsSource="{Binding Source}"
                                            XBindingPath="X"
                                            YBindingPath="Y">
                    </charts:SplineAreaSeries>
    
                </charts:SfCartesianChart.Series>
            
            </charts:SfCartesianChart>
        
        </sliders:SfRangeSelector>
    </ContentPage>
    SfRangeSelector rangeSelector = new SfRangeSelector();
    rangeSelector.Minimum = 10;
    rangeSelector.Maximum = 20;
    rangeSelector.RangeStart = 13;
    rangeSelector.RangeEnd = 17;
    SfCartesianChart chart = new SfCartesianChart();
    DateTimeAxis primaryAxis = new DateTimeAxis();
    chart.XAxes = primaryAxis;
    NumericalAxis secondaryAxis = new NumericalAxis();
    chart.YAxes = secondaryAxis;
    SplineAreaSeries series = new SplineAreaSeries();
    series.ItemsSource = (new ViewModel()).Source;
    series.XBindingPath = "X";
    series.YBindingPath = "Y";
    rangeSelector.Content = chart;

    RangeSelector labels

    Enable labels

    The ShowLabels property enables the labels which renders on given interval.

    <ContentPage 
                 ...
                 xmlns:sliders="clr-namespace:Syncfusion.Maui.Sliders;assembly=Syncfusion.Maui.Sliders"
                 xmlns:charts="clr-namespace:Syncfusion.Maui.Charts;assembly=Syncfusion.Maui.Charts">
    
        <sliders:SfRangeSelector Minimum="0" 
                                 Maximum="10" 
                                 RangeStart="2" 
                                 RangeEnd="8"
                                 Interval="2" 
                                 ShowLabels="True">
    
            <charts:SfCartesianChart>
                ...
            </charts:SfCartesianChart>
    
        </sliders:SfRangeSelector>
    </ContentPage>
    SfRangeSelector rangeSelector = new SfRangeSelector();
    rangeSelector.Minimum = 0;
    rangeSelector.Maximum = 10;
    rangeSelector.RangeStart = 2;
    rangeSelector.RangeEnd = 8;
    rangeSelector.Interval = 2;
    rangeSelector.ShowLabels = true;
    SfCartesianChart chart = new SfCartesianChart();
    rangeSelector.Content = chart;

    RangeSelector labels

    Enable ticks

    The ShowTicks property enables the ticks in the Range Selector, while the MinorTicksPerInterval property enables the minor ticks between the major ticks.

    <ContentPage 
                 ...
                 xmlns:sliders="clr-namespace:Syncfusion.Maui.Sliders;assembly=Syncfusion.Maui.Sliders"
                 xmlns:charts="clr-namespace:Syncfusion.Maui.Charts;assembly=Syncfusion.Maui.Charts">
        
        <sliders:SfRangeSelector Minimum="0" 
                                 Maximum="10" 
                                 RangeStart="2" 
                                 RangeEnd="8"                       
                                 Interval="2" 
                                 ShowLabels="True"
                                 ShowTicks="True" 
                                 MinorTicksPerInterval="1">
            
            <charts:SfCartesianChart>
                ...
            </charts:SfCartesianChart>
        
        </sliders:SfRangeSelector>
    </ContentPage>
    SfRangeSelector rangeSelector = new SfRangeSelector();
    rangeSelector.Minimum = 0;
    rangeSelector.Maximum = 10;
    rangeSelector.RangeStart = 2;
    rangeSelector.RangeEnd = 8;
    rangeSelector.Interval = 2;
    rangeSelector.ShowLabels = true;
    rangeSelector.ShowTicks = true;
    rangeSelector.MinorTicksPerInterval = 1;
    SfCartesianChart chart = new SfCartesianChart();
    rangeSelector.Content = chart;

    RangeSelector ticks

    Inverse the Range Selector

    Invert the Range Selector using the IsInversed property. The default value of the IsInversed property is False.

    <ContentPage 
                 ...
                 xmlns:sliders="clr-namespace:Syncfusion.Maui.Sliders;assembly=Syncfusion.Maui.Sliders"
                 xmlns:charts="clr-namespace:Syncfusion.Maui.Charts;assembly=Syncfusion.Maui.Charts">
    
        <sliders:SfRangeSelector Minimum="0" 
                                 Maximum="10" 
                                 RangeStart="2" 
                                 RangeEnd="8"
                                 Interval="2"
                                 ShowLabels="True"
                                 ShowTicks="True" 
                                 MinorTicksPerInterval="1" 
                                 IsInversed="True">
    
            <charts:SfCartesianChart>
                ...
            </charts:SfCartesianChart>
    
        </sliders:SfRangeSelector>
    </ContentPage>
    SfRangeSelector rangeSelector = new SfRangeSelector();
    rangeSelector.Minimum = 0;
    rangeSelector.Maximum = 10;
    rangeSelector.RangeStart = 2;
    rangeSelector.RangeEnd = 8;
    rangeSelector.Interval = 2;
    rangeSelector.ShowLabels = true;
    rangeSelector.ShowTicks = true;
    rangeSelector.MinorTicksPerInterval = 1;
    rangeSelector.IsInversed = true;
    SfCartesianChart chart = new SfCartesianChart();
    rangeSelector.Content = chart;

    Inverse rangeselector

    Formatting labels

    Add prefix or suffix to the labels using the NumberFormat property.

    <ContentPage 
                 ...
                 xmlns:sliders="clr-namespace:Syncfusion.Maui.Sliders;assembly=Syncfusion.Maui.Sliders"
                 xmlns:charts="clr-namespace:Syncfusion.Maui.Charts;assembly=Syncfusion.Maui.Charts">
        
        <sliders:SfRangeSelector Minimum="20" 
                                 Maximum="100" 
                                 RangeStart="40" 
                                 RangeEnd="80"
                                 Interval="20"
                                 ShowLabels="True"
                                 NumberFormat="$#" 
                                 ShowTicks="True">
            
            <charts:SfCartesianChart>
                ...
            </charts:SfCartesianChart>
        
        </sliders:SfRangeSelector>
    </ContentPage>
    SfRangeSelector rangeSelector = new SfRangeSelector();
    rangeSelector.Minimum = 20;
    rangeSelector.Maximum = 100;
    rangeSelector.RangeStart = 40;
    rangeSelector.RangeEnd = 80;
    rangeSelector.ShowLabels = true;
    rangeSelector.ShowTicks = true;
    rangeSelector.Interval = 20;
    rangeSelector.NumberFormat = "$#";
    SfCartesianChart chart = new SfCartesianChart();
    rangeSelector.Content = chart;

    RangeSelector label format