Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esta visão geral fornece uma introdução às topologias de navegação no WPF. Três topologias de navegação comuns, com amostras, são discutidas posteriormente.
Observação
Antes de ler este tópico, você deve estar familiarizado com o conceito de navegação estruturada no WPF usando funções de página. Para obter mais informações sobre esses dois tópicos, consulte Visão geral da navegação estruturada.
Este tópico contém as seguintes seções:
Topologias de navegação
No WPF, a navegação normalmente consiste em páginas (Page) com hiperlinks (Hyperlink) que navegam para outras páginas quando clicadas. As páginas para as quais são navegadas são identificadas por URIs (uniform resource identifiers) (consulte URIs de pacote no WPF). Considere o seguinte exemplo simples que mostra páginas, hiperlinks e identificadores uniformes de recursos (URIs).
<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>
Essas páginas são organizadas em uma topologia de navegação cuja estrutura é determinada pela forma como você pode navegar entre as páginas. Essa topologia de navegação específica é adequada em cenários simples, embora a navegação possa exigir topologias mais complexas, algumas das quais só podem ser definidas quando um aplicativo está em execução.
Este tópico aborda três topologias de navegação comuns: linear fixa, hierárquica fixa e gerada dinamicamente. Cada topologia de navegação é demonstrada com um exemplo que tem uma interface do usuário como a mostrada na figura a seguir:
Topologias de navegação estruturada
Existem dois tipos amplos de topologias de navegação:
Topologia fixa: definida em tempo de compilação e não muda em tempo de execução. As topologias fixas são úteis para a navegação através de uma sequência fixa de páginas em ordem linear ou hierárquica.
Topologia dinâmica: definida em tempo de execução com base na entrada que é coletada do usuário, do aplicativo ou do sistema. As topologias dinâmicas são úteis quando as páginas podem ser navegadas em sequências diferentes.
Embora seja possível criar topologias de navegação usando páginas, os exemplos usam funções de página porque fornecem suporte adicional que simplifica o suporte para passar e retornar dados pelas páginas de uma topologia.
Navegação em uma topologia linear fixa
Uma topologia linear fixa é análoga à estrutura de um assistente que tem uma ou mais páginas do assistente que são navegadas numa sequência fixa. A figura a seguir mostra a estrutura de alto nível e o fluxo de um assistente com uma topologia linear fixa:
Os comportamentos típicos para navegar sobre uma topologia linear fixa incluem o seguinte:
Navegando da página de chamada para uma página de lançamento que inicializa o assistente e depois navega até à primeira página do assistente. Uma página inicializadora (sem interface de utilizador PageFunction<T>) não é necessária, uma vez que uma página de chamada pode aceder à primeira página do assistente diretamente. O uso de uma página iniciadora, no entanto, pode simplificar a inicialização do assistente, especialmente se a inicialização for complexa.
Os usuários podem navegar entre as páginas usando os botões Voltar e Avançar (ou hiperlinks).
Os usuários podem navegar entre as páginas usando o diário.
Os utilizadores podem cancelar o assistente a partir de qualquer página pressionando um botão Cancelar.
Os usuários podem aceitar o assistente na última página do assistente pressionando um botão Concluir.
Se um assistente for cancelado, ele devolverá um resultado apropriado e não fornecerá nenhum dado.
Se um usuário aceitar um assistente, o assistente retornará um resultado apropriado e retornará os dados coletados.
Quando o assistente estiver concluído (aceite ou cancelado), as páginas que o assistente inclui serão removidas do registo. Isso mantém cada instância do assistente isolada, evitando assim possíveis anomalias de dados ou estado.
Navegação dinâmica sobre uma topologia hierárquica fixa
Em alguns aplicativos, as páginas permitem a navegação para duas ou mais outras páginas, como mostra a figura a seguir:
Essa estrutura é conhecida como topologia hierárquica fixa, e a sequência na qual a hierarquia é percorrida geralmente é determinada em tempo de execução pelo aplicativo ou pelo usuário. Em tempo de execução, cada página na hierarquia que permite a navegação para duas ou mais outras páginas reúne os dados necessários para determinar para qual página navegar. A figura a seguir ilustra uma das várias sequências de navegação possíveis com base na figura anterior:
Embora a sequência na qual as páginas em uma estrutura hierárquica fixa são navegadas seja determinada em tempo de execução, a experiência do usuário é a mesma que a experiência do usuário para uma topologia linear fixa:
Navegando da página de chamada para uma página de lançamento que inicializa o assistente e depois navega até à primeira página do assistente. Uma página inicializadora (sem interface de utilizador PageFunction<T>) não é necessária, uma vez que uma página de chamada pode aceder à primeira página do assistente diretamente. O uso de uma página iniciadora, no entanto, pode simplificar a inicialização do assistente, especialmente se a inicialização for complexa.
Os usuários podem navegar entre as páginas usando os botões Voltar e Avançar (ou hiperlinks).
Os usuários podem navegar entre as páginas usando o diário.
Os usuários podem alterar a sequência de navegação se navegarem de volta pelo diário.
Os utilizadores podem cancelar o assistente a partir de qualquer página pressionando um botão Cancelar.
Os usuários podem aceitar o assistente na última página do assistente pressionando um botão Concluir.
Se um assistente for cancelado, ele devolverá um resultado apropriado e não fornecerá nenhum dado.
Se um usuário aceitar um assistente, o assistente retornará um resultado apropriado e retornará os dados coletados.
Quando o assistente estiver concluído (aceite ou cancelado), as páginas que o assistente inclui serão removidas do registo. Isso mantém cada instância do assistente isolada, evitando assim possíveis anomalias de dados ou estado.
Navegação em uma topologia gerada dinamicamente
Em alguns aplicativos, a sequência na qual duas ou mais páginas são navegadas só pode ser determinada em tempo de execução, seja pelo usuário, pelo aplicativo ou por dados externos. A figura a seguir ilustra um conjunto de páginas com uma sequência de navegação indeterminada:
A figura seguinte ilustra uma sequência de navegação que foi escolhida pelo utilizador em tempo de execução:
A sequência de navegação é conhecida como uma topologia gerada dinamicamente. Para o usuário, como para as outras topologias de navegação, a experiência do usuário é a mesma das topologias anteriores:
Navegando da página de chamada para uma página de lançamento que inicializa o assistente e depois navega até à primeira página do assistente. Uma página inicializadora (sem interface de utilizador PageFunction<T>) não é necessária, uma vez que uma página de chamada pode aceder à primeira página do assistente diretamente. O uso de uma página iniciadora, no entanto, pode simplificar a inicialização do assistente, especialmente se a inicialização for complexa.
Os usuários podem navegar entre as páginas usando os botões Voltar e Avançar (ou hiperlinks).
Os usuários podem navegar entre as páginas usando o diário.
Os utilizadores podem cancelar o assistente a partir de qualquer página pressionando um botão Cancelar.
Os usuários podem aceitar o assistente na última página do assistente pressionando um botão Concluir.
Se um assistente for cancelado, ele devolverá um resultado apropriado e não fornecerá nenhum dado.
Se um usuário aceitar um assistente, o assistente retornará um resultado apropriado e retornará os dados coletados.
Quando o assistente estiver concluído (aceite ou cancelado), as páginas que o assistente inclui serão removidas do registo. Isso mantém cada instância do assistente isolada, evitando assim possíveis anomalias de dados ou estado.
Ver também
.NET Desktop feedback