Tengo 3 páginas en mi aplicación. La página n. ° 2 vuelve a la página n. ° 1 y la reenvía a la página n. ° 3. ¿Cómo puedo hacerla para que la navegación de la página n. ° 3 omita la página n. ° 2 y vaya directamente al n. ° 1?¿Cómo eliminar una página del historial de navegación?
Respuesta
Lo que terminé con, es la combinación de páginas n. ° 2 y n. ° 3 en una página. Cuando necesito la página n. ° 2, utilizo el parámetro de navegación para iniciar la página con el contenido # 2 visible, cuando termino con el n. ° 3, simplemente oculto el contenido n. ° 2.
EDITAR: En Mango, hay una función NavigationService.RemoveBackEntry() que hace exactamente lo que se necesita.
this.NavigationService siempre es "nulo" para mí, ¿cómo lo solucionó? – Jonny
@Jonny lo puso en el evento de carga de página – EaterOfCode
En lugar de Página # 2 navegar específicamente a Página # 1 Considere el uso de este código: -
NavigationService.GoBack();
No hay manera de ir directamente desde la página # 3 a la página # 1 sin tener que pasar a través de la página 2 #.
Sin embargo, puede manejar OnNavigatedTo
en la página n. ° 2 y si procede de la página n. ° 3, emita otra llamada al NavigationService.GoBack()
.
Algo así como:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
if (comingFromPage3)
{
NavigationService.GoBack();
}
base.OnNavigatedTo(e);
}
Existen varias formas de realizar un seguimiento de si se accede desde la página 3 #. Estaría tentado de ir con una variable global para indicar esto (establecido en la página n. ° 3 y registrado en la página n. ° 2).
Si decide utilizar un seguimiento simple de cuántas veces se ha navegado a la página (es decir, la segunda vez que se navega a la página debe ser a cambio del n. ° 3) tenga cuidado con lo que sucede cuando se descabeza cuando cualquiera de las páginas 2 o la página n. ° 3 se visualiza.
Esto funciona, pero la página # 2 parpadea por una fracción de segundo. No estoy contento con eso. –
Si está utilizando el botón de retroceso de hardware, entonces no, no hay una forma directa de hacerlo.
Siempre puede usar el método de navegación para ir directamente a la página uno.
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.RelativeOrAbsolute));
Eso le llevará a la primera página, pero también agregará la página 3 a la pila posterior.
En WPF siempre puede usar el método RemoveBackEntry() para borrar elementos de la pila posterior, pero desafortunadamente no está disponible en Silverlight para el teléfono.
Recomiendo overiding el botón de atrás pulse la tecla para dirigir al usuario en el que queremos que se vayan:
override protected void OnBackKeyPress (System.ComponentModel.CancelEventArgs e) { NavigationService.Navigate (nueva Uri (" /MainPage.xaml ", UriKind.Relative)); }
Esto lleva a escribir su propia navegación;) Una vez que haya aplicado este patrón, debe mantenerlo para cada navegación hacia atrás. –
Ahora puede eliminar páginas de la pila de respaldo directamente. Ver este tema para obtener más información:
debe crear "cargado" evento para su página
private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
{
try { while (NavigationService.RemoveBackEntry() != null) ; }
catch (System.NullReferenceException ex) { }
}
- 1. eliminar una página de navegación Pila
- 2. ¿Cómo elimino una página del historial del navegador?
- 3. Cómo puedo eliminar una vista del controlador de navegación
- 4. Eliminar el historial del navegador usando jQuery
- 5. Eliminar archivos eliminados del historial de git
- 6. Eliminar el historial del terminal en Linux
- 7. cómo insertar la página actual en el historial del navegador
- 8. Mercurial Eliminar historial
- 9. Git: cómo eliminar el historial antes de una determinada cometer
- 10. ¿Cómo borrar una actividad específica del historial de la pila?
- 11. Eliminar un elemento del Panel de administración de Magento Navegación
- 12. ¿Cómo eliminar elementos de una página?
- 13. Eliminar archivos confidenciales y sus confirmaciones del historial de Git
- 14. eliminar el archivo del historial de git no funciona
- 15. ¿Cómo accedes al historial del navegador?
- 16. Usar el historial de navegación en Eclipse RCP
- 17. Eliminar archivo con todo el historial del repositorio svn
- 18. ¿Cómo borrar o cambiar el historial de navegación de Jquery Mobile?
- 19. Historial de página - ¿Existe el botón Atrás?
- 20. ¿Cómo mantener el historial del navegador sincronizado al usar Ajax?
- 21. Práctica de navegación de página pura JSP?
- 22. ¿Cómo elimino el historial de navegación en Silverlight/Windows Phone 7?
- 23. eliminando puntos del historial del navegador
- 24. Obteniendo la URL de la última página del objeto del historial: ¿cruzar el navegador?
- 25. CSS: Cómo cambiar el color del menú de la página de navegación activa
- 26. ¿Cómo cerrar una rama SIN eliminarla del historial en git?
- 27. ¿Cómo eliminar el zoom, el terreno y la navegación del usuario desde el mapa de google?
- 28. Crear una navegación numérica
- 29. Pila o cola del historial de alarmas?
- 30. Cómo detectar el botón de retroceso o el botón de navegación hacia adelante en una aplicación de navegación Silverlight
Silverlight = WP7!. Tendría menos vistas con las etiquetas adecuadas. :) –