私は Windows Phone アプリケーションを開発しており、次の 3 つの画面があります。
- メインスクリーン
- ログイン選択画面。
- サインイン画面。
ユーザーがサインインして「サインイン」ボタンを押すと、画面 3 から画面 1 に戻りたいと思います。画面 2 に戻り、すぐに最初の画面に戻ります。私は2画面を表示したくありません。
これを行うことは可能ですか?
私は Windows Phone アプリケーションを開発しており、次の 3 つの画面があります。
ユーザーがサインインして「サインイン」ボタンを押すと、画面 3 から画面 1 に戻りたいと思います。画面 2 に戻り、すぐに最初の画面に戻ります。私は2画面を表示したくありません。
これを行うことは可能ですか?
3ページのどこかに追加
NavigationService.RemoveBackEntry();
これにより、バック スタックからページ 2 が削除されます。ユーザーが戻るキーを押すと、ユーザーは直接ページ 1 に戻ります。
しかし、Amal Dev が指摘したように、Microsoft は、ユーザーが前のページに移動できるようにすることを望んでいます。このルールはあまり強制されていないようです。おそらく、「ユーザーを決して混乱させない」ことを意味しています。認定テスターを混乱させると、アプリは認定に失敗します。
これを試して
ページの名前が FirstPage.xaml、SecondPage.xaml、ThirdPage.xaml であるとします。
//Check for the first page and remove the remaining back stack in your ThirdPage.xaml
while(!NavigationService.BackStack.First().Source.OriginalString.Contains("FirstPage"))
{
NavigationService.RemoveBackEntry();
}
NavigationService.GoBack();
NavigationService.Navigate
これにはメソッドを使用できます。
NavigationService.Navigate(new Uri( string.Format("/your page name.xaml?val={0}", ValueTextBox.Text), UriKind.Relative));
以下のリンクを参照してください。