我的画布里面有列表框。 列表框的每个子元素都为Click事件设置了事件处理程序。 在画布上我为
设置了eventhandlersManipulationStarted="canvas_ManipulationStarted"
ManipulationDelta="canvas_ManipulationDelta"
ManipulationCompleted="canvas_ManipulationCompleted"
我的刷卡工作代码完全接受一件事,它在ManipulationCompleted事件处理程序之前触发Click事件处理程序。
但是例如同时列表框滚动完美并且不会触发Click事件。
基本上我需要的是以与listbox相同的方式处理操作事件。
如果这种情况属实:
private void canvas_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
e.DeltaManipulation.Translation.X > [some value]
....
}
我需要在画布的任何子元素上禁用触发Click事件,无论它是否在列表框内都无关紧要。
答案 0 :(得分:0)
如果您不想让它们点火,为什么要设置点击处理程序?
点击指针按下的指针,因此无法判断用户是想要点击还是开始操作。您需要根据点击的位置或稍后的事件来决定是否要区分"点击"和滑动。
您可以处理Tap手势以及操作事件,而不是Click。由于Tap触发释放的指针,如果用户在一个点上点击并释放,操纵系统将触发它,如果用户按下并移动指针,它将触发操作。
有关详细信息,请参阅How to handle manipulation events for Windows Phone 8。