2015-02-10 2 views
3

Я пытаюсь создать медиаплеер, и я не могу понять, как обнаружить пользователя, перемещающего ползунок для позиции носителя. Я пробовал различные события, которые MS дает для слайдера, но ни один из них, похоже, не срабатывает. Я видел руководства для более ранней версии WP, которые показывают события Thumb.Drag, но я не вижу их в WP 8.1. Как определить перемещение ползунка?Windows Phone 8.1 Slider - обнаружение взаимодействия пользователя

Благодаря

Slider Control

+0

ValueChanged событие я думаю, что бы один путь. –

+0

Да, но как это работает с DispatchTimer, который перемещает слайдер при воспроизведении медиа? Моя мысль заключалась в том, что событие DispatchTimer должно было бы проверить, перемещается ли ползунок уже до установки текущей позиции, поскольку оба действия будут конкурировать. Разве это не так? –

+0

О, извините, я понимаю, что вы сейчас говорите. Да, мне нужно было бы подумать об этом, так как я бы не подумал, что просто наблюдать за большим пальцем будет так или иначе, так как пользователь может щелкнуть в любом месте трека и rev/ffwd, хороший вопрос +1 –

ответ

0

То, что работает для меня с помощью PointerPressed, чтобы определить, является ли пользователь взаимодействует с ползунком, а затем я использую PointerReleased, PointerExited и PointerCaptureLost в противоположном случае.

Если ваш DispatchTimer всегда изменяет значение ползунка на одну и ту же сумму каждый раз, вы можете использовать событие ValueChanged, чтобы определить, отличается ли измененное значение к типу вашего DispatchTimer. Здесь вы можете обрабатывать логику ввода пользователя (приостанавливая таймер до тех пор, пока не произойдет одно из событий, упомянутых выше).

+0

Вам нужно что-либо сделать кроме того, зарегистрируйте свой обработчик для события PointerPressed слайдера? Я попытался сделать это, и я не получил никаких событий. –

+0

Все это установлено в XAML Warpenguin

0

У меня была такая же проблема. Диапазон диапазона заменит progressBar, чтобы пользователь мог взаимодействовать с ним и перескакивать носитель в определенное время. Событие, что я мог бы захватить взаимодействия с пользователем, но обыкновение быть уволен программно Изменяется GotFocus как в:

Xaml:

<Slider x:Name="sldTest" HorizontalAlignment="Left" Margin="-3,40,0,0" VerticalAlignment="Top" Width="379" GotFocus="Slider_GotFocus"/> 

C#:

private void Slider_GotFocus(object sender, RoutedEventArgs e) 
    { 
     // the new value will be at the very same object, so you can just 
     // get the value of itself. 
     var newValue = sldTest.Value; 
    } 
Смежные вопросы