[UWP – How To] Detectar orientación

[UWP – How To] Detectar orientación

Básicamente en esta entrada, lo que deseo demostrar es cómo detectar cambios en la orientación de nuestros dispositivos Windows. En líneas generales necesitamos utilizar los sensores del dispositivo. Por lo tanto, debemos agregar la librería:

  • Windows.Devices.Sensors

Ahora bien, necesitamos verificar la orientación actual. Para ello, escribimos la siguiente rutina en el evento Page_Load de MainPage.xaml:


private void Page_Loaded(object sender, RoutedEventArgs e)
{
//Obtenemos la orientación actual
string orientacion = (Windows.Graphics.Display.DisplayInformation.GetForCurrentView().CurrentOrientation.ToString());
new Windows.UI.Popups.MessageDialog("Orientación: " + orientacion).ShowAsync();
}

Ahora bien, para poder detectar cambios, no nos queda otro camino que utilizar un Timer, el cual permite lanzar un evento cada X intervalo de tiempo. Para este caso, en el evento Tick del Timer verificaremos si la posición a cambiado o no, si ha cambiado procedemos a mostrar un mensaje (que en tu caso puede agregar el código necesario allí).

A continuación, muestro el código completo:


using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.Graphics.Display;

namespace UWP_Orientacion
{
public sealed partial class MainPage : Page
{
DispatcherTimer timer = new DispatcherTimer();
private DisplayOrientations orientacionAlmacenada;

public MainPage()
{
this.InitializeComponent();

timer.Interval = new System.TimeSpan(0, 0, 5);
}

private void Page_Loaded(object sender, RoutedEventArgs e)
{
timer.Tick += Timer_Tick;
timer.Start();
}

private void Timer_Tick(object sender, object e)
{
var orientationSensor = Windows.Graphics.Display.DisplayInformation.GetForCurrentView();// SimpleOrientationSensor.GetDefault();
if (orientationSensor != null)
{
var orientacionActual = orientationSensor.CurrentOrientation;
if (orientacionActual == orientacionAlmacenada)
return;

orientacionAlmacenada = orientacionActual;
new Windows.UI.Popups.MessageDialog("Orientación: " + orientacionAlmacenada.ToString()).ShowAsync();
}
}
}
}

De esta manera, hemos logrado capturar el cambio de orientación en una aplicación UWP para cualquier dispositivo con Windows 10.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.