WPF: слайдер с событием перетаскивания (пауза при перетаскивании, не отпуская большой палец) - PullRequest
0 голосов
/ 20 января 2019

Функциональность: перетащите большой палец, и если пользователь делает паузу на определенное время, не отпуская большой палец, я хочу что-то сделать.Как мне этого добиться?

Я понимаю методы OnThumbDragDelta, OnThumbDragCompleted, OnThumbDragStarted, но все они запускаются при изменении значения.Мне нужно вызвать событие, когда ползунок остается на значении в течение определенного времени, пока перетаскивается большой палец.

1 Ответ

0 голосов
/ 20 января 2019

Вы можете достичь этого, комбинируя желаемое Event с Timer (которое работает как обратный отсчет).
В вашем случае вы можете использовать Slider.OnValueChanged вместо OnThumbDragDelta, OnThumbDragCompleted и т. Д.on.

Каждый раз, когда Event повышается, сбрасывается этот таймер.И по истечении обратного отсчета делайте все, что хотите.


private DispatcherTimer dispatcherTimer;

Инициализация (например, в конструкторе):

dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Interval = TimeSpan.FromSeconds(1); //Or whatever time you like
dispatcherTimer.Tick += DispatcherTimer_Tick;
private void OnEvent(object sender, EventArgs e)
{
    dispatcherTimer.Stop();
    dispatcherTimer.Start();
}
private void DispatcherTimer_Tick(object sender, EventArgs e)
{
    dispatcherTimer.Stop();
    //Your code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...