Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Esta vista general ofrece una introducción a las topologías de navegación en WPF. Posteriormente se describen tres topologías de navegación comunes, con ejemplos.
Nota:
Antes de leer este tema, debe estar familiarizado con el concepto de navegación estructurada en WPF mediante funciones de página. Para obtener más información sobre estos dos temas, vea Información general sobre la navegación estructurada.
Este tema contiene las secciones siguientes:
Topologías de navegación
En WPF, la navegación normalmente consta de páginas (Page) con hipervínculos (Hyperlink) que navegan a otras páginas cuando se hace clic en ellas. Las páginas a las que se navega se identifican mediante identificadores uniformes de recursos (URI) (consulte Pack URI en WPF). Considere el siguiente ejemplo sencillo que muestra páginas, hipervínculos e identificadores uniformes de recursos (URI):
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="Page1">
<Hyperlink NavigateUri="Page2.xaml">Navigate to Page2</Hyperlink>
</Page>
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="Page2">
<Hyperlink NavigateUri="Page1.xaml">Navigate to Page1</Hyperlink>
</Page>
Estas páginas se organizan en una topología de navegación cuya estructura viene determinada por cómo puede navegar entre las páginas. Esta topología de navegación concreta es adecuada en escenarios sencillos, aunque la navegación puede requerir topologías más complejas, algunas de las cuales solo se pueden definir cuando se ejecuta una aplicación.
En este tema se tratan tres topologías de navegación comunes: lineales fijas, jerárquicas fijas y generadas dinámicamente. Cada topología de navegación se muestra con un ejemplo que tiene una interfaz de usuario como la que se muestra en la ilustración siguiente:
Topologías de navegación estructurada
Hay dos tipos amplios de topologías de navegación:
Topología fija: definida en tiempo de compilación y no cambia en tiempo de ejecución. Las topologías fijas son útiles para la navegación a través de una secuencia fija de páginas en un orden lineal o jerárquico.
Topología dinámica: definida en tiempo de ejecución en función de la entrada recopilada por el usuario, la aplicación o el sistema. Las topologías dinámicas son útiles cuando las páginas se pueden navegar en secuencias diferentes.
Aunque es posible crear topologías de navegación mediante páginas, los ejemplos usan funciones de página porque proporcionan compatibilidad adicional que simplifica la compatibilidad para pasar y devolver datos a través de las páginas de una topología.
Navegación a través de una topología lineal fija
Una topología lineal fija es análoga a la estructura de un asistente que tiene una o varias páginas del asistente que se navegan en una secuencia fija. En la ilustración siguiente se muestra la estructura de alto nivel y el flujo de un asistente con una topología lineal fija:
Entre los comportamientos típicos para navegar por una topología lineal fija se incluyen los siguientes:
Navegar desde la página que llama a una página del iniciador que inicializa el asistente y navega a la primera página del asistente. No se requiere una página de iniciador (sin PageFunction<T>interfaz de usuario), ya que una página de llamada puede llamar directamente a la primera página del asistente. Sin embargo, el uso de una página de inicio puede simplificar la inicialización del asistente, especialmente si la inicialización es compleja.
Los usuarios pueden navegar entre páginas mediante botones Atrás y Adelante (o hipervínculos).
Los usuarios pueden navegar entre páginas mediante el diario.
Los usuarios pueden cancelar el asistente desde cualquier página del asistente presionando un botón Cancelar.
Los usuarios pueden aceptar el asistente en la última página del asistente presionando un botón Finalizar.
Si se cancela un asistente, el asistente devuelve un resultado adecuado y no devuelve ningún dato.
Si un usuario acepta un asistente, el asistente devuelve un resultado adecuado y devuelve los datos recopilados.
Una vez completado el asistente (aceptado o cancelado), se eliminan del diario las páginas que contiene el asistente. Esto mantiene aislada cada una de las instancias del asistente, lo que evita potenciales anomalías de datos o de estado.
Navegación dinámica a través de una topología jerárquica fija
En algunas aplicaciones, las páginas permiten la navegación a dos o más páginas, como se muestra en la ilustración siguiente:
Esta estructura se conoce como topología jerárquica fija y la secuencia en la que se recorre la jerarquía suele determinarse en tiempo de ejecución por la aplicación o el usuario. En tiempo de ejecución, cada página de la jerarquía que permite la navegación a dos o más páginas recopila los datos necesarios para determinar a qué página navegar. En la ilustración siguiente se muestra una de varias secuencias de navegación posibles basadas en la ilustración anterior:
Aunque la secuencia en la que se navegan las páginas de una estructura jerárquica fija se determina en tiempo de ejecución, la experiencia del usuario es la misma que la experiencia del usuario para una topología lineal fija:
Navegar desde la página que llama a una página del iniciador que inicializa el asistente y navega a la primera página del asistente. No se requiere una página de iniciador (sin PageFunction<T>interfaz de usuario), ya que una página de llamada puede llamar directamente a la primera página del asistente. Sin embargo, el uso de una página de inicio puede simplificar la inicialización del asistente, especialmente si la inicialización es compleja.
Los usuarios pueden navegar entre páginas mediante botones Atrás y Adelante (o hipervínculos).
Los usuarios pueden navegar entre páginas mediante el diario.
Los usuarios pueden cambiar la secuencia de navegación si retroceden a través del diario.
Los usuarios pueden cancelar el asistente desde cualquier página del asistente presionando un botón Cancelar.
Los usuarios pueden aceptar el asistente en la última página del asistente presionando un botón Finalizar.
Si se cancela un asistente, el asistente devuelve un resultado adecuado y no devuelve ningún dato.
Si un usuario acepta un asistente, el asistente devuelve un resultado adecuado y devuelve los datos recopilados.
Una vez completado el asistente (aceptado o cancelado), se eliminan del diario las páginas que contiene el asistente. Esto mantiene aislada cada una de las instancias del asistente, lo que evita potenciales anomalías de datos o de estado.
Navegación a través de una topología generada dinámicamente
En algunas aplicaciones, la secuencia en la que se navegan dos o más páginas solo se puede determinar en tiempo de ejecución, ya sea por el usuario, la aplicación o los datos externos. En la ilustración siguiente se muestra un conjunto de páginas con una secuencia de navegación sin determinar:
En la ilustración siguiente se muestra una secuencia de navegación elegida por el usuario en tiempo de ejecución:
La secuencia de navegación se conoce como topología generada dinámicamente. Para el usuario, al igual que con las otras topologías de navegación, la experiencia del usuario es la misma que para las topologías anteriores:
Navegar desde la página que llama a una página del iniciador que inicializa el asistente y navega a la primera página del asistente. No se requiere una página de iniciador (sin PageFunction<T>interfaz de usuario), ya que una página de llamada puede llamar directamente a la primera página del asistente. Sin embargo, el uso de una página de inicio puede simplificar la inicialización del asistente, especialmente si la inicialización es compleja.
Los usuarios pueden navegar entre páginas mediante botones Atrás y Adelante (o hipervínculos).
Los usuarios pueden navegar entre páginas mediante el diario.
Los usuarios pueden cancelar el asistente desde cualquier página del asistente presionando un botón Cancelar.
Los usuarios pueden aceptar el asistente en la última página del asistente presionando un botón Finalizar.
Si se cancela un asistente, el asistente devuelve un resultado adecuado y no devuelve ningún dato.
Si un usuario acepta un asistente, el asistente devuelve un resultado adecuado y devuelve los datos recopilados.
Una vez completado el asistente (aceptado o cancelado), se eliminan del diario las páginas que contiene el asistente. Esto mantiene aislada cada una de las instancias del asistente, lo que evita potenciales anomalías de datos o de estado.
Consulte también
.NET Desktop feedback