在滑动(轻弹)父级时,防止在子视图上单击事件。 WinPhone8.1

时间:2015-03-17 16:42:46

标签: c# windows-phone-8 windows-phone win-phone-silverlight-8.1

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

设置了eventhandlers
ManipulationStarted="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事件,无论它是否在列表框内都无关紧要。

1 个答案:

答案 0 :(得分:0)

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

点击指针按下的指针,因此无法判断用户是想要点击还是开始操作。您需要根据点击的位置或稍后的事件来决定是否要区分"点击"和滑动。

您可以处理Tap手势以及操作事件,而不是Click。由于Tap触发释放的指针,如果用户在一个点上点击并释放,操纵系统将触发它,如果用户按下并移动指针,它将触发操作。

有关详细信息,请参阅How to handle manipulation events for Windows Phone 8