Come abbiamo visto nello script #78, grazie all'uso dei sensori possiamo conoscere molte informazioni sullo stato fisico del device o dell'ambiente che lo circonda.
All'interno del namespace Windows.Devices.Sensors troviamo la classe SimpleOrientationSensor, che permette di conoscere l'angolo di rotazione oltreché se il dispositivo è rivolto verso il basso o verso l'alto (faccia giù o faccia su).
Come gli altri sensori, con il metodo GetDefault ne recuperiamo una istanza che ci permette l'accesso, con GetCurrentOrientation e con l'evento OrientationChanged possiamo recuperare l'orientamento corrente in modo puntuale o a seguito di un cambiamento.
var str = new StringBuilder(); var sensor = SimpleOrientationSensor.GetDefault(); if (sensor == null) return; var orientation = sensor.GetCurrentOrientation(); str.AppendLine(orientation.ToString()); switch (orientation) { case SimpleOrientation.NotRotated: break; case SimpleOrientation.Rotated90DegreesCounterclockwise: break; case SimpleOrientation.Rotated180DegreesCounterclockwise: break; case SimpleOrientation.Rotated270DegreesCounterclockwise: break; case SimpleOrientation.Faceup: break; case SimpleOrientation.Facedown: break; } sensor.OrientationChanged += (SimpleOrientationSensor obj, SimpleOrientationSensorOrientationChangedEventArgs args) => { Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { str.AppendLine(args.Orientation.ToString()); textBlock1.Text = str.ToString(); }); };
L'orientamento è espresso dall'enumerato SimpleOrientation con i valori NotRotated,Rotated90DegreesCounterclockwise,Rotated180DegreesCounterclockwise,Rotated270DegreesCounterclockwise,Faceup e Facedown. Questi ultimi indicano proprio se il device ha lo schermo rivolto verso l'alto o verso il basso.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Path addizionali per gli asset in ASP.NET Core MVC
Ordinare randomicamente una lista in C#
Definire stili a livello di libreria in Angular
Migliorare la sicurezza dei prompt con Azure AI Studio
Scrivere selettori CSS più semplici ed efficienti con :is()
Triggerare una pipeline su un altro repository di Azure DevOps
.NET Conference Italia 2024
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Fornire parametri ad un Web component HTML
Creare una libreria CSS universale - Rotazione degli elementi
Gestire la cancellazione di una richiesta in streaming da Blazor