Предотвращение событий Click в дочернем представлении при перелистывании (стряхивании) родителя. WinPhone8.1
У меня есть холст со списком внутри него. каждый дочерний элемент списка устанавливает обработчик события для события Click. На холсте я установил обработчики событий для
ManipulationStarted="canvas_ManipulationStarted"
ManipulationDelta="canvas_ManipulationDelta"
ManipulationCompleted="canvas_ManipulationCompleted"
Мой код для считывания работает отлично, примите одну вещь, он запускает обработчик события Click до ManipulationCompleted обработчик событий.
Но, например, список в то же время прекрасно прокручивается и не запускает событие Click.
В общем, мне нужно обрабатывать события манипуляции так же, как и списки.
Если это условие верно:
private void canvas_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
e.DeltaManipulation.Translation.X > [some value]
....
}
Мне нужно отключить событие Click для любого дочернего элемента canvas, независимо от того, находится оно внутри списка или нет.
1 ответ
Почему вы устанавливаете обработчики кликов, если не хотите, чтобы они запускались?
Клик срабатывает при нажатии указателя, поэтому невозможно определить, хочет ли пользователь кликнуть или начать манипуляцию. Вам нужно будет либо принять решение на основе местоположения, на которое нажали, либо на более позднем событии, если вы хотите различать "щелчки" и пролистывания.
Вместо щелчка вы можете обрабатывать жест касания вместе с событиями манипуляции. Так как Tap запускает отпущенный указатель, система манипулирования запускает его, если пользователь нажимает и отпускает в одном месте, и запускает манипуляции, если пользователь нажимает и перемещает указатель.
См. Как обрабатывать события манипуляции для Windows Phone 8 для получения дополнительной информации.