How does windows 8 manage stack of Pages in Frame?

后端 未结 4 961
感动是毒
感动是毒 2021-01-16 22:52

How does Windows 8 manage a stack of Pages in a Frame?

And how can I clear the whole stack programmatically, as in I need to \'pop\' all pages in a stack and return

相关标签:
4条回答
  • 2021-01-16 23:08

    Try implementing your own Frame class, something similar to this:

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

    Then you could write a RemoveLastEntry method that basically does this:

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

    and call this method a certain number of times.

    Or you could call GoHome method which takes you back to the first screen (that would be clearing the whole stack except the first item).

    I hope this'll take you in the right direction!

    0 讨论(0)
  • 2021-01-16 23:08

    best solution would be

    while (this.Frame.CanGoBack)
    {
        this.Frame.GoBack();
    }
    
    0 讨论(0)
  • 2021-01-16 23:09

    In the Common/LayoutAwarePage.cs there is the following GoHome() function (in addition to the GoBack() function used with the Click-event on the standard Back button):

        // Use the navigation frame to return to the topmost page
        if (this.Frame != null)
        {
            while (this.Frame.CanGoBack) this.Frame.GoBack();
        }
    
    0 讨论(0)
  • 2021-01-16 23:21

    Have a look at the methods of the Frame class

    In this article (a must read about navigation):

    private void ResetPageCache()
    {
        var cacheSize = ((Frame) Parent).CacheSize;
        ((Frame) Parent).CacheSize = 0;
        ((Frame) Parent).CacheSize = cacheSize;
    }
    
    0 讨论(0)
提交回复
热议问题