2011-01-11 3 views
1

ピボットコントロールの画像にリストがあります。画像をタッチすると、別のビューに移動します。新しいピボットを飛ばしてその間に画像をタッチすると、それがナビゲートします。Windows Phoneでイベントをキャンセルする

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

あなたのコードを表示することができれば、我々は、おそらく、より具体的な答えを提供することができます。しかし

私はあなたがイメージの感動を検出するために、MouseButtonLeftDownまたは類似を使用している推測しています。これより、toolkitTapジェスチャーを使用してください。これにより、問題が発生しないようにする必要があります。

画像に触れている間にピボットジェスチャーを無効にすることもできますが、ピボットアイテム内で画像をどのように使用しているかによって、適切なピボットナビゲーションができなくなる可能性があります。

var gl = GestureService.GetGestureListener(img); 

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

をし、ハンドラは、このようなものになるだろう:

あなたは、このようなコードでTapイベントを追加することができます。 (しかし、実際に何かを行うことは明らかです。)

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

タップを使用していないため、私のコードを追加しました。おそらくMouseButtonLeftDownです。プログラムでタップを使用するにはどうすればよいですか?私はxamlだけの例を見た。 GestureListenerを作成する必要がありますが、イメージにバインドするにはどうすればいいですか? –

+0

@Thomasの例が追加されました –

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(...)); 
    } 
} 
+0

これを行う場合、多少の動きに対して許容範囲を追加することをお勧めします。さもなければあなたはhteユーザーがタップであると思ったものを失うことになるかもしれないが、実際には*非常に小さなスワイプでした。 –

+0

@Matt Laceyそれは良い点です。私は耐性を追加します。 – Vaysage

関連する問題