Для базового сценария, описанного в обзоре msdn (в разделе «Сенсорное управление») TouchEnter и TouchLeave запускаются для каждого соответствующего TouchDown и TouchUp соответственно.В отличие от мыши, Touch и Stylus не обязаны поддерживать контакт с экраном.
Есть ли способ использовать TouchEnter и TouchLeave для захвата только тогда, когда палец перетащил в UIElement.Поскольку эти события запускаются для каждого TouchUp и TouchDown, каков лучший способ дифференцировать эти события?
Одна стратегия, которая будет работать для случая с одним пальцем, - это установить флаг на TouchDown и проверить, установлен ли флаг на TouchUp.Это позволяет некоторые проверки состояния на TouchUp.Однако для нескольких пальцев это невозможно.
Нет событий PreviewTouchEnter и PreviewTouchLeave, только PreviewTouchDown и PreviewTouchUp.Последовательность событий для пальца, опущенного на элемент UIElement и затем поднятого над ним, выглядит следующим образом:
- TouchEnter
- PreviewTouchDown
- TouchDown
- PreviewTouchUp
- TouchUp
- TouchLeave
Эта последовательность не помогает дифференцировать TouchEnter, который произошел из-за перетаскивания пальцем по экрану в элемент UIElement, изпалец, который опускается на UIElement напрямую.Я что-то упустил или фреймворк сам не поддерживает такую дифференциацию?