Hello,
Is it possible to have the slider snap to one specific value?
I have a slider ranging from 0.2 to 3 (it represents a zoom ratio) and I would like to be able to freely move it but have it snap at 1 (say between 0.95 and 1.05 for instance) in order to easily set it back to 1 (100% zoom).
From my understanding IsSnapToTicksEnabled will snap to defined ticks but this means that no other value than those ticks can be selected.
Can this be achieved?
Thanks
Is it possible to have the slider snap to one specific value?
I have a slider ranging from 0.2 to 3 (it represents a zoom ratio) and I would like to be able to freely move it but have it snap at 1 (say between 0.95 and 1.05 for instance) in order to easily set it back to 1 (100% zoom).
From my understanding IsSnapToTicksEnabled will snap to defined ticks but this means that no other value than those ticks can be selected.
Can this be achieved?
Thanks
6 Answers, 1 is accepted
0
Hello Nicolas,
Could you please examine this approach and let me know if it fits in your scenario:
Feel free to ask if you need further assitance.
All the best,
Petar Mladenov
the Telerik team
Could you please examine this approach and let me know if it fits in your scenario:
<
Grid
x:Name
=
"LayoutRoot"
Background
=
"White"
>
<
StackPanel
Orientation
=
"Horizontal"
>
<
telerik:RadSlider
x:Name
=
"sliderAlpha"
Width
=
"200"
Minimum
=
"0"
Maximum
=
"3"
Value
=
"1"
Ticks
=
"1"
ValueChanged
=
"sliderAlpha_ValueChanged"
/>
<
TextBlock
Text
=
"{Binding Value, ElementName=sliderAlpha}"
Margin
=
"20 0 0 0"
/>
</
StackPanel
>
</
Grid
>
public
MainPage()
{
InitializeComponent();
}
private
void
sliderAlpha_ValueChanged(
object
sender, RoutedPropertyChangedEventArgs<
double
> e)
{
if
(
this
.sliderAlpha !=
null
)
{
if
(e.NewValue >= 0.9d && e.NewValue <= 1.1d)
{
this
.sliderAlpha.IsSnapToTickEnabled =
true
;
}
else
this
.sliderAlpha.IsSnapToTickEnabled =
false
;
}
}
All the best,
Petar Mladenov
the Telerik team
0
Nicolas
Top achievements
Rank 1
answered on 17 Feb 2011, 05:10 PM
Hello,
This code does make the slider snaps around 1, but then it is stuck at 1 unless I go to 0.5 or 1.5. I can see that the ValueChanged is not fired until then, which is why is IsSnapToTickEnabled property remains True.
This code does make the slider snaps around 1, but then it is stuck at 1 unless I go to 0.5 or 1.5. I can see that the ValueChanged is not fired until then, which is why is IsSnapToTickEnabled property remains True.
0
Hi Nicolas,
Please accept my apologies for the non-working solution in the previous post. Could you please try the following approach and let us know whether it satisfies your needs completely ?
Do not hesitate to ask if you need more info on this.
All the best,
Petar Mladenov
the Telerik team
Please accept my apologies for the non-working solution in the previous post. Could you please try the following approach and let us know whether it satisfies your needs completely ?
<
Grid
x:Name
=
"LayoutRoot"
Background
=
"White"
>
<
StackPanel
Orientation
=
"Horizontal"
>
<
telerik:RadSlider
x:Name
=
"sliderAlpha"
Width
=
"200"
Minimum
=
"0"
Maximum
=
"10"
ValueChanged
=
"sliderAlpha_ValueChanged"
/>
<
TextBlock
Text
=
"{Binding Value, ElementName=sliderAlpha}"
Margin
=
"20 0 0 0"
/>
</
StackPanel
>
</
Grid
>
private
void
sliderAlpha_ValueChanged(
object
sender, RoutedPropertyChangedEventArgs<
double
> e)
{
if
(
this
.sliderAlpha !=
null
)
{
if
(e.NewValue >= 4.9d && e.NewValue <= 5.1d)
{
sliderAlpha.TickFrequency = 1;
this
.sliderAlpha.IsSnapToTickEnabled =
true
;
}
else
{
this
.sliderAlpha.IsSnapToTickEnabled =
false
;
this
.sliderAlpha.TickFrequency = 0;
}
}
}
All the best,
Petar Mladenov
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
0
Nicolas
Top achievements
Rank 1
answered on 22 Feb 2011, 05:36 PM
Hello Petar,
Thank you for coming back to this.
Unfortunately this solution does not work in my case.
a) This displays ticks when the slider is snapped and hides them when it is not snapped which is not what I want.
b) It does not work with my slider which has ticks defined already.
Please find below the full declaration of the Slider:
ZoomLevelMin is 0.2 and ZoomLevelMax is 3. The slider displays ticks at 1 and 2 as well as min and max values. However I want to only snap at 1.
Thanks
Thank you for coming back to this.
Unfortunately this solution does not work in my case.
a) This displays ticks when the slider is snapped and hides them when it is not snapped which is not what I want.
b) It does not work with my slider which has ticks defined already.
Please find below the full declaration of the Slider:
<
telerik:RadSlider
Grid.Row
=
"1"
Value
=
"{Binding ZoomLevel, Mode=TwoWay}"
Orientation
=
"Vertical"
Margin
=
"0 8 0 12"
HorizontalAlignment
=
"Center"
FontSize
=
"9"
Ticks
=
"1,2"
TickPlacement
=
"BottomRight"
ValueChanged
=
"RadSlider_ValueChanged"
Minimum
=
"{Binding ZoomLevelMin}"
Maximum
=
"{Binding ZoomLevelMax}"
>
ZoomLevelMin is 0.2 and ZoomLevelMax is 3. The slider displays ticks at 1 and 2 as well as min and max values. However I want to only snap at 1.
Thanks
0
Accepted
Hello Nicolas,
The suggested solution won't work in your case since the Ticks defined in XAML have bigger priority than the TickFrequency defined in code behind. Since your scenario is more like a custom application logic , we created a feature request in our PITS (Slider: Snap only to certain ticks) that will be soon available for voting.
Greetings,
Petar Mladenov
the Telerik team
The suggested solution won't work in your case since the Ticks defined in XAML have bigger priority than the TickFrequency defined in code behind. Since your scenario is more like a custom application logic , we created a feature request in our PITS (Slider: Snap only to certain ticks) that will be soon available for voting.
Greetings,
Petar Mladenov
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
0
Nicolas
Top achievements
Rank 1
answered on 01 Mar 2011, 09:05 AM
Hello Petar,
Alright! Thanks for putting this in PITS, I voted for this and I'm now tracking this issue.
Thank you.
Alright! Thanks for putting this in PITS, I voted for this and I'm now tracking this issue.
Thank you.