diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/RangeSelector/RangeSelector.cs b/Microsoft.Toolkit.Uwp.UI.Controls/RangeSelector/RangeSelector.cs index 419a68efd8a..373db695187 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/RangeSelector/RangeSelector.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls/RangeSelector/RangeSelector.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System; +using Microsoft.Toolkit.Uwp.UI.Extensions; using Windows.Foundation; using Windows.System; using Windows.UI.Xaml; @@ -35,6 +36,7 @@ public partial class RangeSelector : Control private const double DefaultMinimum = 0.0; private const double DefaultMaximum = 1.0; private const double DefaultStepFrequency = 1; + private static readonly TimeSpan TimeToHideToolTipOnKeyUp = TimeSpan.FromSeconds(1); /// /// Identifies the Minimum dependency property. @@ -61,6 +63,8 @@ public partial class RangeSelector : Control /// public static readonly DependencyProperty StepFrequencyProperty = DependencyProperty.Register(nameof(StepFrequency), typeof(double), typeof(RangeSelector), new PropertyMetadata(DefaultStepFrequency)); + private readonly DispatcherQueueTimer keyDebounceTimer = DispatcherQueue.GetForCurrentThread().CreateTimer(); + private Border _outOfRangeContentContainer; private Rectangle _activeRectangle; private Thumb _minThumb; @@ -247,7 +251,9 @@ private void Thumb_KeyUp(object sender, KeyRoutedEventArgs e) case VirtualKey.Right: if (_toolTip != null) { - _toolTip.Visibility = Visibility.Collapsed; + keyDebounceTimer.Debounce( + () => _toolTip.Visibility = Visibility.Collapsed, + TimeToHideToolTipOnKeyUp); } e.Handled = true; diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/RangeSelector/RangeSelector.xaml b/Microsoft.Toolkit.Uwp.UI.Controls/RangeSelector/RangeSelector.xaml index 1aa6a1911e7..96c03241032 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/RangeSelector/RangeSelector.xaml +++ b/Microsoft.Toolkit.Uwp.UI.Controls/RangeSelector/RangeSelector.xaml @@ -1,6 +1,5 @@