0

いくつPhoneApplicationPageかのグリッド、画像、およびいくつかのボタンがあります。ボタンの外側、ページ内の任意の場所 (画像、グリッドなど) をタップすると、新しいページが開きます。

ページのどこかでタップ/クリックを検出するにはどうすればよいですか?

4

1 に答える 1

1

それを行うには、少なくとも2つの方法があります。

  1. MouseLeftButtonUpでイベントを聞きますPhoneApplicationPage。ボタンではなく、画像とラベルによってトリガーする必要があります
  2. Tapでイベントを聞きますPhoneApplicationPage。ただし、このイベントは、ユーザーがボタンをタップした場合でもトリガーされます。これを防ぐには、イベント ハンドラーのタップ座標でコントロールのリストを取得し、ボタンがない場合にのみ新しいページを開くことができます。

    private void PhoneApplicationPage_Tap(object sender, System.Windows.Input.GestureEventArgs e)
    {
        var element = (UIElement)sender;
    
        var controls = VisualTreeHelper.FindElementsInHostCoordinates(e.GetPosition(element), element);
    
        if(controls.OfType<Button>().Any())
        {
            return;
        }
    
        // Open the new page
    }
    
于 2012-11-04T09:31:48.120 に答える