2011-06-28 12 views
0

Webブラウザコントロールを使用してデバイス上にローカルコンテンツを表示するアプリケーションがあります。これは、アプリケーションのページとしてホストされ、物理的な戻るボタン。戻るボタンのアプリケーションページスタックをWP7に変更する

問題は、アプリケーションバーにボタンを配置してWebブラウザを終了し、Webブラウザページの前のページに戻ってWP7アプリケーションページスタックがこれを記憶していて、ボタンを押すと、Webブラウザのページに移動し、ブラウザで表示したページを逆方向に移動します。

Webブラウザのページをアプリケーションページのスタックに含めないことが理想です。実行時にスタックの内容を変更したり、ページを含めないように強制できますか?

Jaimeの記事では、ブラウザコントロールの使用状況について説明しています。

http://blogs.msdn.com/b/jaimer/archive/2011/02/04/back-button-press-when-using-webbrowser-control-in-wp7.aspx

答えて

1

リンク先の記事がバックスタックにウェブブラウザで移動したページを追加する方法を示しています。

NavigationService.RemoveBackEntry(); 

ジェシーリバティは、この上に非常に良い記事を持っています。

デフォルトでは、WebBrowserコントロールのナビゲーション履歴は、アプリケーションのバックスタックに含まれていません。

(ブラウザの履歴をページバックスタックに追加するために)特別な動作を追加したように聞こえて、今は回避する必要があります。

+0

乾杯Matt - コードはRichから取ったので、私は彼が何をしているか確認します:) – AwkwardCoder

0

最初に、提供されたリンクのvalipourのおかげで!このソリューションは素晴らしいですが、私はちょうどあなたが次の操作を行うために必要なすべてのナビゲーションスタックをクリアするためにそれを追加したい:

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

    if (e.NavigationMode == NavigationMode.New 
     && NavigationContext.QueryString.ContainsKey("clear")) 
    { 
     while (NavigationService.CanGoBack) 
     { 
      NavigationService.RemoveBackEntry(); 
     } 
    } 
} 

あなたはMainPage.xamlをのビハインドコードにこのコードを追加して起動した場合/MainPage.xaml?clear=true URIの場合、ナビゲーションスタックはクリアされます。

関連する問題