0

重複の可能性:
プログラムで WP7 アプリケーションを閉じますか?

MessageBox を使用するアプリケーションにはインターネット接続が必要であることをユーザーに示したいと考えています。彼が [OK] をクリックすると、BackButton を使用せずにアプリケーションを終了したい コードは次のとおりです

try
        {
            response = (HttpWebResponse)request.EndGetResponse(asyncResult);
        }
        catch (Exception e)
        {

            System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                MessageBoxResult m = MessageBox.Show("Потребна е Интернет конекција");
               if (m == MessageBoxResult.OK)
               {
                   while (NavigationService.BackStack.Any())
                      NavigationService.RemoveBackEntry();
                    //base.OnBackKeyPress(new System.ComponentModel.CancelEventArgs());
                   NavigationService.GoBack();
                }



            });


        }

ただし、アプリは終了していません。Web サービスに接続しようとしています。

ありがとう

4

3 に答える 3

1

@willmel が述べたように、ユーザー エクスペリエンスは Windows Phone のユーザー エクスペリエンスと一致していません。Microsoft の Peter Torr は、(ユーザー エクスペリエンスの観点から) これが悪い考えである理由と、アプリケーションをプログラムで終了する必要がないようにインターフェイスを設計する方法について、少し古いブログ記事を投稿しています。

于 2012-05-27T23:18:12.700 に答える
0

アプリをプログラムで閉じることはできず、過去の認定を受けることはできません。ユーザー エクスペリエンスを再考する必要があります。

たとえば、同じメッセージを表示し、アプリのすべてのコントロールを無効にして、ユーザーが [戻る] ボタンでアプリから離れることができます。

さらに、MessageBoxResult.Noneハードウェアの戻るボタンを押してダイアログを閉じた結果である を保持します。(コードで処理しているようには見えません)

于 2012-05-27T18:09:46.800 に答える
0

あなたがやろうとしていることのエラーをキャッチすることに頼ることはお勧めしません。多くの誤検知があるでしょう。電話機には、ネットワークが利用可能かどうかを判断するための API があります。MainPage.xaml.cs で次の操作を行います。

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);

    if (DeviceNetworkInformation.IsNetworkAvailable == false)
    {
        MessageBox.Show("No network! Try again later.");
    }
    else
    {
        // Logic that would happen if they had connection, maybe you show controls 
        // here that might not be displayed w/o a connection
    }
}
于 2012-05-27T20:23:05.937 に答える