Páginas

13 de jun. de 2014

9º Dia - Navegação entre páginas

   A classe Uri (Uniform Resource Identifier) representa o endereço das páginas, podendo ser de dois tipos:

  • Absolute - um endereço simples de página.
  • Relative - endereço de página com parâmetros.
  Vejamos um exemplo:
Uri uri = new Uri("/pagina.xaml", UriKind.Relative);
   Vamos falar de outro componente importante na navegação entre páginas, o objeto NavigationService que é responsável por gerenciar a navegação. Podemos direcionar para a página anterior (GoBack), para a próxima (GoForward), ou para um endereço específico (Nagivate). Vejamos um exemplo:
Uri uri = new Uri("/pagina.xaml", UriKind.Relative);
NavigationService.Navigate(uri);
   Note que passamos o objeto instanciado da classe Uri como parâmetro para o método Navigate. Podemos unir o código do C# com o XAML, vejamos:

Na pagina um, dentro de um grid, insira um HyperlinkButton:
<Grid Grid.Row="1" Margin="12,0,12,0">
    <HyperlinkButton x:Name="irpage2" Content="Ir para a Página 2" Click="irpage2_Click"/>
</Grid>

Na pagina dois, dentro de um grid, insira outro HyperlinkButton:
<Grid Grid.Row="1" Margin="12,0,12,0">
    <HyperlinkButton x:Name="voltarpage2" Content="Voltar" Click="voltarpage2_Click"/>
</Grid>
Agora vamos implementar o código:
Página um:

private void irpage2_Click(object sender, RoutedEventArgs e)
{
    this.NavigationService.Navigate(new Uri("/Pagina2.xaml", UriKind.Relative));
}

Página dois:
private void voltarpage2_Click(object sender, RoutedEventArgs e)
{
    if (this.NavigationService.CanGoBack)
    {
        this.NavigationService.GoBack();
    }
}

Na página um implementamos o método click do HyperlinkButton, passando como parâmetro um objeto Uri para o método Navigate. Já na página dois, verificamos o conteúdo da flag CanGoBack, que nos diz se é possível retornar a página anterior, caso positivo, o objeto NavigationService chama o método Goback().

Nenhum comentário:

Postar um comentário