0

Windows 8はフレーム内のページのスタックをどのように管理しますか?

そして、スタック内のすべてのページを「ポップ」して、最初のページ(たとえばログインページ)に戻る必要がある場合のように、プログラムでスタック全体をクリアするにはどうすればよいですか?

4

4 に答える 4

3

Common / LayoutAwarePage.csには、次のGoHome()関数があります(標準の[戻る]ボタンのクリックイベントで使用されるGoBack()関数に加えて)。

    // Use the navigation frame to return to the topmost page
    if (this.Frame != null)
    {
        while (this.Frame.CanGoBack) this.Frame.GoBack();
    }
于 2012-09-15T09:33:56.623 に答える
3

Frameクラスのメソッドを見てください

この記事では(ナビゲーションについて読む必要があります):

private void ResetPageCache()
{
    var cacheSize = ((Frame) Parent).CacheSize;
    ((Frame) Parent).CacheSize = 0;
    ((Frame) Parent).CacheSize = cacheSize;
}
于 2012-07-04T10:25:41.637 に答える
0

次のような独自の Frame クラスを実装してみてください。

http://blogs.microsoft.co.il/blogs/eshaham/archive/2012/04/30/fixing-frame-navigation-in-metro-style-apps.aspx

次に、基本的にこれを行う RemoveLastEntry メソッドを作成できます。

void RemoveLastEntry()
{
    if (_navigationStack.Count > 0)
    {
        _navigationStack.Pop();
    }
}

このメソッドを一定回数呼び出します。

または、最初の画面に戻る GoHome メソッドを呼び出すこともできます (最初のアイテムを除くスタック全体をクリアします)。

これがあなたを正しい方向に導くことを願っています!

于 2012-07-05T14:15:40.567 に答える
0

最善の解決策は

while (this.Frame.CanGoBack)
{
    this.Frame.GoBack();
}
于 2012-10-23T16:05:47.000 に答える