Windows Phone 7.1 introduce la possibilità di gestire la system tray, cioè la parte superiore del frame, quella in cui Windows Phone integra l'orario, l'indicazione della rete, del wifi e così via.
Prima di questa nuova versione non era possibile controllarne l'aspetto da un punto di vista grafico, con il risultato che applicazioni che personalizzano fortemente il look, ad esempio con un colore di sfondo nel panorama, nella maggior parte dei casi nascondono quest'area, per evitare un effetto grafico sgradevole.
In Windows Phone 7.1 è stata introdotta la nuova classe SystemTray, nel namespace Microsoft.Phone.Shell, che consente di gestire in maniera programmatica l'aspetto della system tray.
Ecco, ad esempio, come regolarne le principali proprietà:
SystemTray.ForegroundColor = Colors.Red; SystemTray.BackgroundColor = Colors.Black; SystemTray.Opacity = 0.99; SystemTray.IsVisible = true;
Si può notare che impostiamo l'opacità, in maniera che la barra risulti comunque un tutt'uno con lo sfondo dell'applicazione, il colore di sfondo e quello del testo.
Oltre a questi aspetti, possiamo sfruttare la proprietà ProgressIndicator per gestire una progress bar all'interno della system tray, come accade per le applicazioni di sistema.
In questo caso possiamo impostare un testo da visualizzare insieme alla progress bar. Agendo sulla proprietà IsIndeterminate possiamo gestire la visualizzazione continua o con scatto in percentuale, per poi associarla alla system tray:
ProgressIndicator pi = SystemTray.ProgressIndicator; if (pi == null) pi = new ProgressIndicator(); pi.IsIndeterminate = IsBusy; pi.IsVisible = IsBusy; pi.Text = "Caricamento..."; SystemTray.ProgressIndicator = pi;
L'uso della progress bar in system tray andrebbe sempre preferita all'uso all'interno delle viste, perchè, tra l'altro, a differenza dell'approccio poco fa menzionato, la progress bar in system tray è gestita dal sistema e non rallenta l'esecuzione.
Alcuni esempi dell'aspetto che si ottiene sono visibili di seguito:

Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
- Gestire progetti .NET + React in .NET Aspire
- Eseguire script pre e post esecuzione di un workflow di GitHub
- Fissare una versione dell'agent nelle pipeline di Azure DevOps
- Simulare Azure Cosmos DB in locale con Docker
- Montare Azure Blob Storage su Linux con BlobFuse2
- Recuperare le subissue e il loro stato di completamento in GitHub
- Eseguire una ricerca avanzata per recuperare le issue di GitHub
- Utilizzare WhenEach per processare i risultati di una lista di task
- Introduzione ai web component HTML
- Introduzione alle Container Queries
- Proteggere l'endpoint dell'agente A2A delle Logic App
- Scrivere selettori CSS più semplici ed efficienti con :is()
I più letti di oggi
- CSS Friendly Toolkit per ASP.NET 2.0 Beta 1, per migliorare il supporto agli standard web
- Nuova build di IE 7 beta 2 preview con la March 20 Refresh
- .NET Conference Italia 2025 - Milano
- The Agentic Day - Milano
- Occhio alle bufale: Microsoft non invia patch via e-mail!
- CSS Friendly ASP.NET 2.0 Control Adapters Beta 3


