Le applicazioni Windows Phone riprendono il modello di navigazione tra le pagine introdotto da Silverlight: l'utente può visualizzare il contenuto delle pagine e navigante tra esse, come se fosse in un browser.
La corrispondenza tra l'Uri e il file fisico, ovvero la pagina XAML, avviene mediante un componente particolare, chiamato UriMapper.
Ci sono casi, però, in cui realizzarne un UriMapper custom è indispensabile: ad esempio, quando dobbiamo fornire la nostra logica di rooting ed indirizzare l'utente a pagine differenti, in base ad un parametro presente nell'Uri.
Creare un UriMapper è semplicissimo: ci basta estendere la classe UriMapperBase.
class MyUriMapper : UriMapperBase
{
private string tempUri;
public override Uri MapUri(Uri uri)
{
tempUri = uri.ToString();
// controllo il contenuto dell?uri
if (tempUri.Contains("ViewfinderLaunch"))
{
// restituisco l?uri appropriato
return new Uri("/myView.xaml", UriKind.Relative);
}
// altrimenti non faccio nessun cambiamento
return uri;
}
}Creata la classe, dobbiamo eseguire l'ovveride del motodo MapUri. Il codice all'intero del metodo è semplice: recuperato l'Uri, controlliamo il contenuto, se utile all'applicazione, e modifichiamo l'Uri effettivamente restituito.
Creata la classe, non ci resta che modificare il file App.xaml.cs. Dobbiamo identificare la parte di inizializzazione e aggiungere la seguente riga:
RootFrame.UriMapper = new MyUriMapper();
Personalizzare il rooting degli Uri ci permette di controllare in modo semplice ed efficace le pagine visualizzate dall'applicazione, oltre a gestire scenari in cui cambiamo nome ad una pagina e vogliamo continuare a mantenere i meccanismi di navigazione (ad esempio, perché gli Uri arrivano da notifiche di tipo push).
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Esporre workflow come server MCP con Azure Logic Apps
Response streaming con Blazor e .NET 10
Gestione delle issue type con GitHub
Gestire lo streaming AI con Angular Signals e React State
Creare comandi nella dashboard .NET Aspire
Breaking the Legacy Barrier: how to Use AI to Modernize Applications
Middleware e telemetria alle chiamate AI con Microsoft.Extensions.AI
Evitare il cache poisoning nei workflow di GitHub
Personalizzare i parametri del CSS Scroll Snap
Utilizzare i command service nei test con .NET Aspire
Utilizzare noopener e noreferrer nei link HTML
Microsoft Fabric: la piattaforma unificata per l'ecosistema dati moderno
I più letti di oggi
- Personalizare l'icona e le funzionalità di un sito web per iOS e IE
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Accedere a risorse e immagini in Windows Store app di Windows 8
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Permettere il Drag-and-drop solo su zone predefinite con Silverlight 2.0
- Accedere a dati esposti con WebService con Silverlight 1.0
- Utilizzare dati in formato XML in XAML


