Você está na página 1de 7

Navegao entre pginas no Windows Phone e passagem de parmetros

http://www.devmedia.com.br/navegacao-entre-paginas-no-windows-p...

Tecnologias

Revistas

Cursos LOGIN:

Pocket videos

DevWare SENHA:

Frum

Servios

Publicar

Compre Crditos

Loja Virtual

Assine

Bem vindo a DevMedia!

Esqueci minha senha

Cadastre-se

post favorito

comentrios

24

Curtir

28

Gostei (0)

(0)

normal nas aplicaes mobile a criao de diversas pginas para realizar tarefas especficas, e essencial conhecer o processo de navegao entre as pginas que bem simples, podendo ser feito pelo XAML diretamente ou pelo cdigo. Vamos criar um exemplo em que na primeira pgina feita a navegao atravs do XAML, e na passagem da segunda pgina para a terceira ser feita a navegao pelo cdigo e com passagem de parmetro. Abra o Visual Studio e crie um projeto Windows Phone Application, conforme a figura 1.

1 de 7

26/08/2013 12:05

Navegao entre pginas no Windows Phone e passagem de parmetros


Figura 1: Criao do Projeto NavegacaoUm no Visual Studio

http://www.devmedia.com.br/navegacao-entre-paginas-no-windows-p...

Ao criar o projeto exibida uma caixa com a opo de escolha da verso do Windows Phone, escolha a 7.1, pois assim o seu aplicativo funcionar em todas as verses de Windows Phone disponveis. Abra o arquivo MainPage.xaml e v ao content panel para adicionar um stackpanel que conter o Boto que ir navegar para a pgina 2, como mostra a listagem 1. Listagem 1: Criao do StackPanel que ir conter o HyperlinkButton

<!--ContentPanel - place additional content here--> <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <StackPanel Width="400" Height="100" VerticalAlignment="Center"> <HyperlinkButton Width="120" Height="50" VerticalAlignment="Center" HorizontalAlignment="Center" Content="Navegar 1" NavigateUri="/Pagina2.xaml" /> </StackPanel> </Grid>

Renomeie o a pagina no Title Panel para pgina um, conforme mostra a listagem 2. Listagem 2: Nomeando o ttulo da pgina

<!--TitlePanel contains the name of the application and page title--> <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"> <TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/> <TextBlock x:Name="PageTitle" Text="pgina um" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> </StackPanel>

Agora v ao Solution Explorer, clique com o boto direito no projeto para adicionar um novo item, que ser a segunda pgina. Nomeie-a Pagina2.xaml e clique em Add, conforme mostra a figura 2.

Figura 2: Criao da pgina dois no projeto Abra a pgina Pagina2.xaml e agora voc ir inserir no Content Panel um stack panel que conter o boto para navegao e o textbox, para que a navegao desta vez seja feita pelo cdigo e ocorra a passagem de parmetro. Listagem 3: Criao dos controles na pgina dois

<!--ContentPanel - place additional content here-->

2 de 7

26/08/2013 12:05

Navegao entre pginas no Windows Phone e passagem de parmetros


<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

http://www.devmedia.com.br/navegacao-entre-paginas-no-windows-p...

<StackPanel Width="400" Height="100" Orientation="Horizontal" VerticalAlignment="Top"> <TextBox Name="txtParametro" Width="200" Height="100" HorizontalAlignment="Left" VerticalAlignment="Top"/> <Button Name="btnNavegar" Content="Navegar 2" Click="btnNavegar_Click" /> </StackPanel> </Grid>

E ento voc deve abrir agora o arquivo Pagina2.xaml.cs para tratar o evento de click do boto navegar dois, conforme a listagem 4. Listagem 4: Tratamento do evento do boto Navegar

private void btnNavegar_Click(object sender, RoutedEventArgs e) { Uri caminho = new Uri("/Pagina3.xaml?parametro=" + txtParametro.Text, UriKind.RelativeOrAbsolute); NavigationService.Navigate(caminho); }

Na listagem 4, voc instanciou uma Uri para conter o caminho da pgina no seu projeto e aps o ponto de interrogao foi dado um nome para o parmetro passado, e ento concatenado o que foi escrito na caixa de texto txtParametro. Por fim, na pgina Pagina2.xaml altere o ttulo da pgina no TitlePanel para pgina 2. Agora ser criada uma terceira pgina que receber o valor do txtParametro. V ao Solution Explorer novamente e adicione um novo item Windows Phone Portrait Page, com o nome de Pagina3.xaml. No topo do arquivo Pagina3.xaml, altere o nome da pgina no TitlePanel para pgina 3. V agora para o arquivo Pagina3.xaml.cs e ser tratado o parmetro passado da pgina 2, atravs de um mtodo chamado OnNavigatedTo. Esse mtodo ser sobrescrito e ento uma MessageBox exibir o parmetro passado, conforme a listagem 5. Listagem 5: Como sobrescrever o mtodo OnNavigatedTo

protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); string parametroRecebido; if (NavigationContext.QueryString.TryGetValue("parametro", out parametroRecebido)) { MessageBox.Show("O paramtro recebido foi : " + parametroRecebido); } }

Agora para testar a aplicao, basta pressionar F5.

3 de 7

26/08/2013 12:05

Navegao entre pginas no Windows Phone e passagem de parmetros

http://www.devmedia.com.br/navegacao-entre-paginas-no-windows-p...

4 de 7

26/08/2013 12:05

Navegao entre pginas no Windows Phone e passagem de parmetros


Figura 3: Aplicao com o parmetro Michael recebido

http://www.devmedia.com.br/navegacao-entre-paginas-no-windows-p...

possvel obviamente a passagem de mais de um parmetro para uma prxima pgina, vamos a um exemplo mostrando como fazer isso. No mesmo projeto, v para a pgina Pagina2.xaml e adicione ao content Panel mais alguns controles como mostra a listagem 6. Listagem 6: Cdigo dos controles adicionados pgina dois

<!--ContentPanel - place additional content here--> <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <StackPanel Width="400" Height="500" VerticalAlignment="Top"> <TextBox Name="txtParametro" Width="200" Height="100" HorizontalAlignment="Left" VerticalAlignment="Top"/> <TextBox Name="txtParametro2" Width="200" Height="100" HorizontalAlignment="Left" VerticalAlignment="Top"/> <TextBox Name="txtParametro3" Width="200" Height="100" HorizontalAlignment="Left" VerticalAlignment="Top"/> <Button Name="btnNavegar" Content="Navegar 2" Click="btnNavegar_Click" /> </StackPanel> </Grid>

Agora na pgina trs, teremos que manipular os parmetros recebidos da pgina dois, portanto abra o arquivo Pagina3.xaml.cs e altere o mtodo OnNavigatedTo, como mostra a listagem 7. Listagem 7: Mtodo OnNavigatedTo no arquivo MainPage.xaml.cs

protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); string parametroRecebido1; string parametroRecebido2; string parametroRecebido3; NavigationContext.QueryString.TryGetValue("parametro", out parametroRecebido1); NavigationContext.QueryString.TryGetValue("parametro2", out parametroRecebido2); NavigationContext.QueryString.TryGetValue("parametro3", out parametroRecebido3);

MessageBox.Show("Parmetro 1: " + parametroRecebido1 + "\nParmetro 2: " + parametroRecebido2 + "\nParmetro 3: " + parametroRecebid }

Neste mtodo os trs parmetros esto sendo atribudos s variveis acima declaradas, e ento exibidas no MessageBox. Pressione F5 e teste sua aplicao. Um abrao e at o prximo artigo.

Nabil Safatli
Analista Desenvolvedor na Working Minds, criador do blog Windows Phone Carioca, estudante de anlise e desenvolvimento de sistemas no Infnet e Microsoft Certified Professional - MCP, MCTS, MCPD ( Windows Phone, Silverlight,.NET Framework 4, Access Data ).

24

Curtir

28

Gostei (0)

(0)

0 COMENTRIO
Nenhum comentrio foi postado - seja o primeiro a comentar!

+Mobile
Publicidade

5 de 7

26/08/2013 12:05

Navegao entre pginas no Windows Phone e passagem de parmetros

http://www.devmedia.com.br/navegacao-entre-paginas-no-windows-p...

Servios
Inclua um comentrio Adicionar aos Favoritos Marcar como lido/assistido Incluir anotao pessoal Verso para impresso

6 de 7

26/08/2013 12:05

Navegao entre pginas no Windows Phone e passagem de parmetros

http://www.devmedia.com.br/navegacao-entre-paginas-no-windows-p...

DevMedia
Curtir Voc curtiu isso.

Voc e outras 12.870 pessoas curtiram DevMedia. DevMedia | Anuncie | Fale conosco Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03
Plug-in social do Facebook

7 de 7

26/08/2013 12:05

Você também pode gostar