c# - Touch input and direct manipulation -
i listening several events handle touch input in windows (phone) 8.1 runtime code. works long no scrollviewer
involved. scrollviewer
swallows gesture events due direct manipulation.
here events listen (view
frameworkelement
):
var cw = window.current.corewindow; cw.pointerpressed += onpointerpressed; cw.pointermoved += onpointermoved; cw.pointerreleased += onpointerreleased; cw.pointercapturelost += onpointercapturelost; view.tapped += ontap; view.doubletapped += ondoubletap; view.holding += onhold; view.manipulationdelta += onmanipulationdelta; view.manipulationcompleted += onmanipulationcompleted;
as scrollviewer
recognizes tap, pointercapturelost , no other event handlers called anymore.
unfortunately there no solution if app needs both scrolling , gestures (for example, detect crossslides against scrolling). in case option pointer messages everywhere disable direct manipulation everywhere, disables scrolling well. app need detect scrolling gestures , navigate scrollviewer new location scrolltohorizontaloffset or scrolltoverticaloffset or updating selectedindex. tricky , noticeably slower letting scrollviewer thing. should avoided if @ possible.
has changed in meantime? know sample that?
i writing abstraction transforms gesture events different events. user can place controls in , don't know, may it. cannot slow down gesture events.
are there other controls beside scrollviewer
behave similarly?
can windows.ui.input.gesturerecognizer
help? uielement
provides events need, didn't try - , don't understand why should.
why not use transparent layer above scrollviewer , forward events (either after first having done processing, or waiting process them first, remembering ones act on them afterwards too)?
Comments
Post a Comment