取消触摸Windows Phone上的事件

时间:2011-01-11 10:47:05

标签: windows-phone-7

我有一个Pivot控件中的图像列表。如果您触摸图像,它将导航到另一个视图。如果轻轻浏览新的枢轴并同时触摸图像,则会导航。

我注意到Facebook应用或原生相册没有这个错误。

有什么想法吗?

编辑:代码:

                            Image img = new Image();
                            Delay.LowProfileImageLoader.SetUriSource(img, new Uri(adViewModel.Photos[k].ThbUrl));
                            img.Width = 150;
                            img.Tag = k;
                            img.Height = 150;
                            img.MouseLeftButtonDown += new MouseButtonEventHandler(launch_Diapo);
                            Grid.SetRow(img, i);
                            Grid.SetColumn(img, j);

                            PhotosGrid.Children.Add(img);

2 个答案:

答案 0 :(得分:2)

如果您可以展示您的代码,我们可能会提供更具体的答案。

然而:

我猜你正在使用MouseButtonLeftDown或类似物来检测图像的触摸。而不是使用toolkit中的Tap手势。这可以防止您遇到的问题。

当您触摸图像时,有一种可能的替代方法可以禁用枢轴手势,但根据您在pivotItem中使用图像的方式,这可能最终阻止正确的枢轴导航。

您可以在以下代码中添加Tap事件:

var gl = GestureService.GetGestureListener(img);

gl.Tap += new EventHandler<GestureEventArgs>(gl_Tap);

并且处理程序将是这样的。 (但实际上做了一些有用的事情 - 显然。)

void gl_Tap(object sender, GestureEventArgs e)
{
    MessageBox.Show("tapped");
}

答案 1 :(得分:0)

即使我有类似的问题。我做的是,检查MouseButtonLeftDown位置和MouseButtonLeftUp位置。如果它们是平等导航,则别做什么。我将粘贴下面的代码。

Point temp;

void img_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    temp = e.GetPosition(null);
}

void img_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    Point point = e.GetPosition(null);
    if (point == temp)
    {
       this.NavigationService.Navigate(new Uri(...));
    }
}