Una delle caratteristiche di Windows Phone è costituita dalla navigazione basate su pagine che forniscono un'esperienza simile al web, sulle quali possiamo agire con il pulsante back. Tutte le pagine vengono ospitate da un PhoneApplicationFrame, oggetto che si occupa di gestire la navigazione e lo stack dell'history. Come possiamo vedere dal file App.xaml.cs, è un elemento visuale che costituisce la radice della nostra applicazione. Se ne deduce quindi che lavorando su di esso otteniamo una modifica che influisce all'esterno di tutte le pagine presenti nell'applicazione.
Come detto, essendo un elemento, anch'esso è sottoposto al sistema di style di XAML, perciò lo possiamo personalizzare, per aggiungere ulteriori elementi che accompagnano tutte le pagine. Poniamo per esempio di voler inserire un banner sempre presente nella parte inferiore di tutte le pagine. Possiamo raggiungere l'obiettivo sfruttando gli stili impliciti, creandone uno nuovo nel file App.xaml. Nello snippet seguente possiamo vedere il markup da inserire per inserire una sezione visibile in tutte le pagine.
<Application.Resources>
<Style TargetType="phone:PhoneApplicationFrame">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="phone:PhoneApplicationFrame">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- contenuto della pagina -->
<ContentPresenter />
<Border Height="80"
Grid.Row="1">
<!-- banner -->
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>Questa tecnica è inoltre molto utile per inserire elementi che vogliamo aggiungere in tutta l'app, come può essere un controllo per la gestione dei caricamenti (un busy indicator).
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Self-healing degli unit test con Copilot in GitHub
Gestione file Javascript in Blazor con .NET 9
Dallo sviluppo locale ad Azure con .NET Aspire
Utilizzare WhenEach per processare i risultati di una lista di task
Anonimizzare i dati sensibili nei log di Azure Front Door
Ospitare n8n su Azure App Service
Escludere alcuni file da GitHub Copilot
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Mappare una complex property di una entity su un campo JSON
Utilizzare DeepSeek R1 con Azure AI
Arricchire l'interfaccia di .NET Aspire
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Le DirectInk API nella Universal Windows Platform
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Gli oggetti CallOut di Expression Blend 4.0
- Sfruttare una CDN con i bundle di ASP.NET


