2011-10-26 13 views
4

私は最初に実行したときに免責条項ページを表示するアプリケーションを持っています。 「Accept」または「Deny」を選択すると、ページが表示されなくなります。バックスラックページを削除してアプリケーションを終了する方法

ただし、最初の実行後にアプリケーションを終了しようとするバックキーを押すと、免責条項ページに戻り、再度ヒットした場合はメインページに戻り、もう一度終了します。

これは、初めてアプリケーションを実行したときにのみ発生しますが、バックキーを押してアプリケーションを終了すると、免責事項ページを無視するようにしたいと考えています。

アプリを閉じるために未処理の例外エラーを強制する以外に、他のオプションはありますか?

ありがとうございます。

解決方法:以下をメインページに追加してください:NavigationService.RemoveBackEntry();

private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e) 
{ 
    NavigationService.RemoveBackEntry(); 
    NavigationService.RemoveBackEntry(); 
} 

答えて

3

もっとエレガントな方法があるとは思いますが、私は急いでいましたので、次のように実装しました。

私は最後のページを格納する静的なグローバルenumを持っています。 pgDisclaimerpgMainというページがあるとします。

pgDisclaimerページのイベントでは、コントロールがどこから来たのか確認してください。 pgMainから来た場合は、NavigationService.GoBack()を実行するとアプリケーションが終了し、実際にはpgDisclaimerページが表示されることはありません(ちらつきさえありません)。

編集:よりエレガントな方法を見つけました。マンゴーでは、恐ろしい名前のNavigationService.RemoveBackEntry()メソッドを使うことができます。

+0

それはそれを行う方法があります。提案に対する感謝の気持ちですが、もし私がそれを働かせれば、ポップアップが最善の解決策になると思います。 – Rhys

+0

@Rhys私の編集を参照してください - MSはマンゴでこの問題を解決しました。 – AngryHacker

+0

ありがとう..私は私のメインページで以下を使用しました。それは動作します..'private void PhoneApplicationPage_Loaded_1(オブジェクト送信者、RoutedEventArgs e) { NavigationService.RemoveBackEntry(); NavigationService.RemoveBackEntry(); } ' – Rhys

3

免責事項は、ページではなくポップアップとして表示する必要があります。ナビゲーションやバックスタックの問題を気にする必要はありません。

Windows Phone: building apps that customers love, end to end

これは約26:20であるカバーし、プレゼンテーション内の特定の部分:私は、これはチャンネル9のビデオで述べました。彼は、ユーザがアプリを離れて戻るのを防ぐログインページについて議論しているが、そのコンセプトは似ている。また

MSDN Blog Postここから:

私はEULA /ログイン画面に関するアドバイスの#1枚を忘れてしまった - ページにそれらをしないでください。代わりにポップアップコントロールを作成すると、いつでも(最初のナビゲーションで、ユーザーがアプリの「保護された」部分にヒットしたとき、タイムアウト後などに)表示または非表示にすることができます。バックスタックのスロット。これは大部分のケースをカバーするはずです。

+0

あなたがそのリンクを見つけることができれば、それは素晴らしいことでしょう。 – Rhys

+0

ありがとうございました。しかし、私は 'NavigationService.RemoveBackEntry();'の解決策に行きました – Rhys

関連する問題