2

我有里面有列表框的画布。列表框的每个子元素都为 Click 事件设置事件处理程序。在画布上,我为

ManipulationStarted="canvas_ManipulationStarted"       
ManipulationDelta="canvas_ManipulationDelta"
ManipulationCompleted="canvas_ManipulationCompleted"

我的刷卡代码完美地接受了一件事,它在 ManipulationCompleted 事件处理程序之前触发 Click 事件处理程序。

但是例如列表框同时完美滚动并且不会触发 Click 事件。

所以基本上我需要的是以与列表框相同的方式处理操作事件。

如果此条件为真:

private void canvas_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{ 
     e.DeltaManipulation.Translation.X > [some value]
     ....
}

我需要在画布的任何子元素上禁用触发 Click 事件,不管它是否在列表框中。

4

1 回答 1

0

如果您不想触发它们,为什么要设置点击处理程序?

单击会在按下指针时触发,因此无法判断用户是要单击还是开始操作。如果您想区分“点击”和滑动,您需要根据点击的位置或稍后的事件来决定。

除了单击之外,您还可以处理 Tap 手势以及操作事件。由于 Tap 在释放的指针上触发,因此如果用户在某个位置点击并释放,操作系统将触发它,如果用户按下并移动指针,它将触发操作。

有关更多详细信息,请参阅如何处理 Windows Phone 8的操作事件。

于 2015-03-18T02:14:39.813 回答