Когда ListView
работает на ПК, мы можем прокручивать его, прокручивая колесо мыши, но когда он работает на телефоне, к телефону не подключено устройство мыши, мы на самом деле прокручиваем ListView
через прокрутку.
ListView
управления содержит ScrollViewer
так:
Я думаю, что проблема с этим ScrollViewer
, когда он находится на компьютере, он обрабатывает скроллинг и манипуляция события отдельно, но когда он находится на телефоне, он не может отличать события прокрутки и манипуляции.
На мой взгляд, это событие манипуляции может реагировать на мышь, но не на одно касание пальца. Яснее, если мы проверим ListView
на Mobile Emulator и симуляторе, когда вы используете Single Point Mouse Input
эмулятора телефона или Mouse Mode
симулятора, события манипуляции работают нормально, но когда вы используете Single Point Touch Input
мобильного эмулятора или Basic Touch Mode
симулятора, он не Работа. Интересная вещь: события манипуляции на самом деле все еще отлично работают на мобильном эмуляторе, когда мы используем Multi-Touch Input
. Более интересная вещь, официальные документы из Using manipulation events говорит:
Если вы не имеете монитор с сенсорным экраном, вы можете проверить свой код события манипуляции в тренажере с использованием интерфейса колеса мыши и мыши.
Итак, предполагается, что он работает на реальном телефоне. Поскольку у меня пока нет устройства, я не могу сказать, хорошо ли он работает на реальном телефоне, я обновлю свой ответ после проверки его на устройстве.
Но, мы можем манипулировать ListView
по телефону с помощью обработки событий Pointer
так:
<ListView x:Name="MyListView" PointerCanceled="PointerExisted" PointerEntered="PointerEntered" PointerMoved="PointerMoved" PointerExited="PointerExisted">
испытан, он прекрасно работает как на ПК и телефоне.
Update:
Просто протестирована на X1 Carbon, Lumia950, я обнаружил, что событие Манипуляция будет срабатывать с помощью двух пальцев, то результат будет такой же, как это было на мобильном эмуляторе.
Какое ожидаемое поведение и что не так на телефоне? – kennyzx
манипулирование завершено событие не работает на телефоне в ListView. код внутри обработчика никогда не вызывается. – SYL
ОК, обновите это на свой вопрос, пожалуйста, – kennyzx