Silverlight for Windows Phone implementa il classico sistema di navigazione tipico delle applicazioni web: esiste una cronologia e ci si può spostare indietro, così da tornare alla pagina precedente, piuttosto che invocare una pagina su cui navigare.
Per navigare tra le pagine è necessario che prendiamo dimestichezza con i concetti di Frame e Page, implementati attraverso i controlli PhoneApplicationFrame e PhoneApplicationPage.
C'è una sola istanza di PhoneApplicationFrame per ogni applicazione, poiché questa è la classe responsabile di gestire lo spazio, occupato da system tray, application bar, oltre che dal contenuto vero e proprio della pagina. Quest'ultimo è a propria volta gestito attraverso la classe PhoneApplicationPage, che corrisponde ad ogni pagina all'interno del nostro frame.
La classe NavigationService espone diversi metodi, tra cui spiccano Navigate e GoBack. Nell'esempio gestiamo il click su un pulsante e portiamo a termine il relativo cambio di pagina:
private void Button1_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative));
}È anche possibile inviare parametri alla pagina, sfruttando il classico sistema basato su querystring, previsto da Silverlight:
private void Button1_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/Page2.xaml?ID=5",
UriKind.Relative));
}Per leggere queste informazioni in Page2.xaml, dovremo sfruttare la classe NavigationContext, che offre una proprietà QueryString che può tornare utile per questo scenario.
A tal proposito, la classe PhoneApplicationPage include un'infrastruttura minima per gestire la navigazione, attraverso i due metodi OnNavigatedTo e OnNavigatedFrom, che si verificano rispettivamente quando la pagina diventa quella attiva all'interno del PhoneApplicationFrame e quando smette di esserlo. Nel primo caso è possibile leggere le informazioni passate da una pagina chiamante, mentre nel secondo si possono, ad esempio, salvare tutti i dati prima di passare alla pagina successiva.
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string id= string.Empty;
if (NavigationContext.QueryString.TryGetValue("ID", out id))
TextBlock1.Text = id;
}Queste classi consentono di gestire al meglio uno degli aspetti principali di un'applicazione per Windows Phone, quindi vanno gestiti di conseguenza.
Questo script è tratto dal libro 'Sviluppare applicazioni per Windows Phone':
http://books.aspitalia.com/Windows-Phone/
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Containers in .NET Aspire
.NET Aspire per applicazioni distribuite
Ridimensionamento automatico input tramite CSS
Impostare il tipo di supporto dei campi Json in Entity Framework con Sql Server
Usare il metodo nameof con un tipo generico in C# 14
Utilizzo del persistent state di Blazor nel prerendering
Il nuovo persistent state in Blazor
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
Evidenziare una porzione di testo in un pagina dopo una navigazione
Ricerca delle GitHub issue tramite operatori logici
Usare la parola chiave field per semplificare la scrittura di proprietà in C#
Analizzare il contenuto di una issue con GitHub Models e AI
I più letti di oggi
- Il valore degli agenti AI cresce davvero quando possono interagire in modo sicuro con dati, servizi e backend aziendali. In questa sessione parleremo di Model Context Protocol e di come usarlo nell'ecosistema Azure per trasformare i servizi che già utilizziamo in tool pronti per scenari agentici reali. Un appuntamento utile per chi vuole capire come rendere la propria architettura agent-ready, con il giusto equilibrio tra integrazione, governance e sicurezza. Ci vediamo a Milano al Global Azure 2026 - ASPItalia.com, con Cristian Civera. #GlobalAzure #Azure #MCP #AI #AIAgents https://aspit.co/globalazure-26
- Global Azure 2026 - ASPItalia.com - Milano




