none
Navigation history en windows 8 RRS feed

  • Pregunta

  • Hola a todos!

    Estoy desarrollando mi primera aplicación estilo metro para Windows 8 y no consigo hacer lo siguiente de ninguna manera:

    Lo que quiero es eliminar una página de la pila de navegación una vez que la abandonas, quiero hacer esto para que cuando pulsas para volver atrás no vuelvas a esa página si no a la anterior. ¿Existe algo en Windows 8 al estilo del Navigation Service?

    Muchas gracias, un saludo!

    lunes, 13 de agosto de 2012 11:27

Respuestas

  • Hola!

    En WinRT toda página tiene un objeto Frame, que es global a todas las páginas de la aplícación y que permite gestionar la navegación. este objeto tiene un método RemoveBackEntry que te permite eliminar la última página en la que has estado. Antes de llamar a RemoveBackEntry comprueba que hay algo en la pila usando la propiedad CanGoBack, si devuelve True puedes llamar a RemoveBackEntry, si devuelve false no es necesario:

    if (this.Frame.CanGoBack)
    {
        this.Frame.RemoveBackEntry();
    }

    Un saludo y espero que te sirva. Si quieres más detalles sobre navegación, tengo un artículo en mi blog que explica como crear un wrapper NavigationService en WinRT:

    http://geeks.ms/blogs/jyeray/archive/2012/04/02/windows-8-apps-metro-para-desarrolladores-windows-phone-7-5-1-de-x.aspx


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter

    sábado, 18 de agosto de 2012 9:19
    Moderador

Todas las respuestas

  • Hola!

    En WinRT toda página tiene un objeto Frame, que es global a todas las páginas de la aplícación y que permite gestionar la navegación. este objeto tiene un método RemoveBackEntry que te permite eliminar la última página en la que has estado. Antes de llamar a RemoveBackEntry comprueba que hay algo en la pila usando la propiedad CanGoBack, si devuelve True puedes llamar a RemoveBackEntry, si devuelve false no es necesario:

    if (this.Frame.CanGoBack)
    {
        this.Frame.RemoveBackEntry();
    }

    Un saludo y espero que te sirva. Si quieres más detalles sobre navegación, tengo un artículo en mi blog que explica como crear un wrapper NavigationService en WinRT:

    http://geeks.ms/blogs/jyeray/archive/2012/04/02/windows-8-apps-metro-para-desarrolladores-windows-phone-7-5-1-de-x.aspx


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter

    sábado, 18 de agosto de 2012 9:19
    Moderador
  • Muchas gracias! Al final lo había hecho manejando el evento de click del botón atrás, pero la manera que has dicho es mucho mejor.

    Un saludo!

    lunes, 20 de agosto de 2012 16:45