Search code examples
c#wpfrangeslider

WPF - RangeSlider wont display only integers


I am working on a project where I need to have prices. So I used a RangeSlider from the Extended WPF Toolkit to select price range.

I also made 2 textblocks that display the lower and the higher value. But the problem is that it displays only numbers with decimals. I want integers.

<wpfTool:RangeSlider Name="rangeSlider" Grid.Row="4" LowerValue="300" Minimum="300" Maximum="2300" HigherValue="2300" LowerValueChanged="RangeSlider_LowerValueChanged"/>
        <WrapPanel Orientation="Horizontal" Margin="0,0,26.983,0">
            <TextBlock Text="{Binding LowerValue, ElementName=rangeSlider, UpdateSourceTrigger=PropertyChanged}"/>
            <TextBlock Width="50"/>
            <TextBlock Text="{Binding HigherValue, ElementName=rangeSlider, UpdateSourceTrigger=PropertyChanged}" Width="44"/>
            <TextBlock Text="€" Width="11"/>
        </WrapPanel>

Solution

  • RangeSlider has 2 Slider controls in its template. You can make Slider to select only integers. The relevant property is IsSnapToTickEnabled. To change that property for nested Sliders add a style into RangeSlider Resources:

    <wpfTool:RangeSlider Name="rangeSlider" Grid.Row="4" 
                         LowerValue="300" Minimum="300" Maximum="2300" HigherValue="2300" 
                         LowerValueChanged="RangeSlider_LowerValueChanged"/>
        <wpfTool:RangeSlider.Resources>
            <Style TargetType="Slider">
                <Setter Property="IsSnapToTickEnabled" Value="True"/>
            </Style>
        </wpfTool:RangeSlider.Resources>
    </wpfTool:RangeSlider>