La User eXperience (UX) è un concetto che non solo abbraccia la struttura dei layout e gli stili dei controlli, legati più che altro alla UI, ma riguarda anche la gestione dei suoni, che spesso vengono ignorati nella maggior parte delle applicazioni ma che invece sono utili per dare ancora più immersività e contesto all'utente che sta utilizzando l'applicazione.
Nella Universal Windows Platform alcuni suoni "di sistema" sono già pronti all'uso, ma non sempre sono attivi: è la piattaforma target che, di fatto, decide se abilitare i suoi oppure no. Pensiamo, ad esempio, alla Xbox: poiché questa richiede che l'utente sia concentrato, per offrire un'esperienza migliore i suoni vengono abilitati di default durante la navigazione delle pagine e sulla selezione dei contenuti, cosa che invece non avviene necessariamente sul mondo desktop.
Per unificare l'esperienza ed abilitare l'audio anche sugli altri target, è necessario fare uso della classe ElementSoundPlayer per impostarne sia il volume che la possibilità di riprodurre (oppure no) i suoni:
<Slider Minimum="0" Maximum="100" Value="50" ValueChanged="OnSliderValueChanged" Header="Volume" />
private void OnSliderValueChanged(object sender, RangeBaseValueChangedEventArgs e)
{
var slider = sender as Slider;
var volumeLevel = slider.Value / 100;
if (volumeLevel == 0)
{
ElementSoundPlayer.State = ElementSoundPlayerState.Off;
return;
}
ElementSoundPlayer.State = ElementSoundPlayerState.On;
ElementSoundPlayer.Volume = volumeLevel;
}Nell'esempio proposto, il livello del volume è impostato attraverso uno slider mostrato nella UI, così che sia direttamente l'utente a scegliere il livello desiderato. Eventualmente è anche possibile riprodurre i suoni già previsti dalla piattaforma, esposti dall'enum ElementSoundKind:
private void Play()
{
ElementSoundPlayer.Play(ElementSoundKind.Invoke);
}I suoni predefiniti includono Focus, GoBack, Hide, Invoke, MoveNext/MovePrevious e Show, che sono piuttosto esplicativi nel loro utilizzo e sono già integrati in alcuni controlli di base, come, ad esempio, i pulsanti. In caso in cui si vogliano disabilitare, è sufficiente sfruttare la proprietà ElementSoundMode:
<Button Content="Play" ... ElementSoundMode="Off" />
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Impostare il tipo di supporto dei campi Json in Entity Framework con Sql Server
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
Creare un agente A2Acon Azure Logic Apps
Integrare SQL Server in un progetto .NET Aspire
Importare un servizio esterno in .NET Aspire
Ricerca delle GitHub issue tramite operatori logici
Creare una file based app con C#
Personalizzare i parametri del CSS Scroll Snap
DevSecOps per .NET: dalla teoria alla pratica
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Recuperare gli audit log in Azure DevOps
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
I più letti di oggi
- Gli agenti AI sono uno dei temi più interessanti del momento, ma costruirli bene richiede molto più di un semplice prompt. In questa sessione parleremo di Azure AI Foundry con un taglio concreto, utile per capire come progettare agenti AI enterprise-grade, integrarli con tool e memoria, monitorarli e gestirne il deployment in modo efficace. Ci vediamo a Milano al Global Azure 2026 - ASPItalia.com, con Stefano Demiliani. #GlobalAzure #Azure #AzureAIFoundry #AI #AIAgents https://aspit.co/globalazure-26
- AKS non significa solo fare deploy. Significa anche gestire workload, operation, scalabilità e affidabilità nel modo giusto. In questa sessione parleremo di Azure Kubernetes Service con un taglio concreto, utile per chi vuole capire come portare Kubernetes in produzione senza complessità inutile. Ci vediamo a Milano per il Global Azure 2026 - ASPItalia.com, con Antonio Lamorte e Matteo Tumiati. #GlobalAzure #Azure #AKS #Kubernetes https://aspit.co/globalazure-26
- Utilizzo del persistent state di Blazor nel prerendering




