0

2 つのページ (ホームページ、ページについて) を持つ Windows Phone 7 プロジェクトがあります。いくつかのコードを含むホームページにタッチ イベント ハンドラーを実装しました。About ページにリダイレクトしてこのページをタッチすると、ホームページのタッチ ハンドラのコードが実行されます。

aboutページでこのハンドラーを防ぐにはどうすればよいですか?

4

1 に答える 1

1

System.Windows.Input.Touch.FrameReportedすべてのページに影響する静的イベントです。呼び出されたくないページで購読を解除する必要があります。

そのためには、このイベントを他のページから登録解除できるように、メイン ページへの参照が必要です。メイン ページへの参照を保持し、メソッドを公開する静的変数を App.cs に追加します。MainPage のコンストラクターで参照を設定します。

// Add this field in App class in App.cs
public static MainPage MainPage { get; set; }
// MainPage Ctor
public MainPage() {
  App.MainPage = this;
  //...
}

次に、他のページの NavigatedTo イベントで、タッチ イベントのサブスクライブを解除するだけです。

// In about page
protected override void OnNavigatedTo(NavigationEventArgs e) {
  base.OnNavigatedTo(e);
  System.Windows.Input.Touch.FrameReported -= App.MainPage.Touch_FrameReported;
}

特定の要素でジェスチャを聞きたい場合は、WP Toolkit のジェスチャ リスナの使用を検討することもできます。

于 2013-05-25T23:15:41.097 に答える