3

だから私は自分のプロジェクトのテストをしているところですが、リンク(ナビゲーションサービスなど)がある場合は、タップとダブルタップの両方が必要であることに気付きました。これは、アプリ内の別のページに移動するボタンがある場合、ダブルタップを処理しない限り、アプリがクラッシュすることを意味します。

だから私がこれを持っているなら:

<toolkit:HubTile Name="XXX"
      Message="XXXYYY" Source="ZZZ" 
      Title="XYZ" Tap="XYZ_Tap"/>

誰かがこのタイルをダブルタップすると、アプリがクラッシュします。代わりに、を追加する必要があります

DoubleTap="XYZ_DoubleTap"

財産。しかし、これは疲れる可能性があり、不必要に思えます。では、すべてのダブルタップをグローバルに処理する方法はありますか?次に、実際にどこかに実装したい場合は、オーバーライドするだけですか?ありがとう :)

編集:DoubleTapの「グローバル」イベントハンドラーは何もするのが簡単です。このように、リンクやボタンごとに書き直す必要はありません。また、処理されていないDoubleTapが呼び出されるたびに例外がスローされることはありません。

4

2 に答える 2

2

2番目の「タップ」で例外がスローされたため、クラッシュが発生している可能性があります。「タスクがフォアグラウンドにない場合、ナビゲーションは許可されません」という方針に沿ったもの。

DoubleTapに空のイベントハンドラーを配置すると、ダブルタップイベントが認識されて何も実行されないため、機能すると思います。おそらくとにかく実行する必要がある別のアプローチは、ナビゲーション呼び出しをtry / catchブロックでラップして、2番目のタップによってスローされた例外をキャッチすることです。

しかし、あなたの特定の質問に対処するために、何もしないこと以外に、ダブルタップのどのようなグローバルな処理を想定していましたか?

于 2012-07-26T23:30:42.467 に答える
1

から継承するカスタム コントロールを作成し、そのクラスで何もしないようにイベントをHubTile設定する必要があります。DoubleTap

于 2012-07-27T07:17:19.253 に答える