Metro スタイル アプリケーションで backStack エントリの削除を実装するにはどうすればよいですか?
質問する
1947 次
3 に答える
1
frame.SetNavigationState("1,0");
ナビゲーション履歴がクリアされます。
于 2012-10-22T16:29:57.467 に答える
1
この回答は役に立ちました:
独自の NavigationService を作成し、ナビゲーション状態をコンストラクターに格納します。
string state;
public NavigationService(Frame mainFrame)
{
state = mainFrame.GetNavigationState();
_mainFrame = mainFrame;
_mainFrame.Navigating += _mainFrame_Navigating;
}
次に、このメソッドをサービスに実装し、必要に応じて呼び出します。
public void ClearBackstack()
{
_mainFrame.SetNavigationState(state);
}
于 2012-11-20T16:45:58.157 に答える
0
それは不可能のようです。バック スタックを完全にクリアする場合 (たとえば、「ホーム」ボタンがある場合)、グリッド サンプル アプリの LayoutAwarePage.cs ファイルで提供されているコードを使用できます。
if (this.Frame != null)
{
while (this.Frame.CanGoBack) this.Frame.GoBack();
}
これは実際にスタックをクリアするわけではありませんが、プログラムの開始位置に戻るので、リストに逆方向のエントリはもうありません。ボタンを押して行き止まりのページから戻りたい場合は、この動作を変更して、いくつかのページを戻し、バック エントリを効果的に削除することができます。
于 2012-10-22T10:50:39.647 に答える