Un aspetto molto interessante, ma molto spesso sottovalutato, riguarda la User eXperience (UX) delle applicazioni alla quale si sta lavorando: la maggior parte delle volte sono i dettagli meno importanti a fare la differenza tra un'applicazione curata e un'applicazione bella da vedere.
Uno dei concetti spesso trascurati è il puntatore del mouse: il classico cursore indica la posizione sullo schermo e la cliccabilità degli elementi, mentre il progress indica l'attesa per il completamento di una operazione, le doppie freccie la possibilità di ridimensionare una finestra.
Queste icone sono già integrate con il sistema operativo ma, nel caso si stia sviluppando un controllo personalizzato, possono risultare molto utili per indicare meglio all'utente le varie possibilità di interazione con quel controllo. Per farlo è sufficiente fare uso della classe CoreCursor:
CoreCursor cursor = null; cursor = new CoreCursor(CoreCursorType.Arrow, 0); cursor = new CoreCursor(CoreCursorType.Cross, 0); cursor = new CoreCursor(CoreCursorType.Wait, 0); cursor = new CoreCursor(CoreCursorType.Hand, 0); cursor = new CoreCursor(CoreCursorType.Help, 0); cursor = new CoreCursor(CoreCursorType.SizeAll, 0); Window.Current.CoreWindow.PointerCursor = cursor;
Ovviamente la logica descritta nello script è solo indicativa di alcune delle possibilità di personalizzazione offerte dall'enum CoreCursorType.
In alternativa è possibile impostare anche un CoreCursorType.Custom per rendere il puntatore veramente personalizzato. Questo è indicato per un utilizzo molto specifico, qualora si disponga già di un file *.res all'interno del file di progetto: in questo caso sarà necessario cambiare il secondo parametro del costruttore della classe CoreCursor indicando l'ID della risorsa creata.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Le novità di Angular: i miglioramenti alla CLI
Hosting di componenti WebAssembly in un'applicazione Blazor static
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Ordine e importanza per @layer in CSS
Creare alias per tipi generici e tuple in C#
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Introduzione alle Container Queries
Usare lo spread operator con i collection initializer in C#
Usare le navigation property in QuickGrid di Blazor
Eseguire una query su SQL Azure tramite un workflow di GitHub