I have implemented gesture handling to allow zooming using the GestureStart, GestureChange and GestureEnd events. I have logging at the beginning of each to monitor what is going on. In GestureChange, I update a bunch of values relative to the event.scale value and update the display enough to show the user that things are zooming. In the GestureEnd event, I reset some values, then call a full visual update with the new values from the gesture.

My problem is that, sometimes, the GestureEnd event doesn't fire. I notice is mostly when zooming out rather than zooming in. I get all the intermediate updates, but it seems that, until I zoom in a bit, the GestureEnd event doesn't get called consistently.

There isn't much difference in my code between zoom in or out. Just some bounds on either end to prevent the zooming from going crazy. I am not changing anything in the event structure or returning anything to stop event processing.

Is this something other people have seen before? Maybe if my gesture of scaling the control makes it smaller and thus out of the area where the gesture is taking place, it stops handing the event? Is that possible, or does it only matter if I start in that control. If it is the former, then I might have a way to fix it, but I don't know.

Thank you.