Cómo determinar la orientación del teléfono de Windows 7?
-
20-09-2019 - |
Pregunta
¿Cómo se puede saber si el dispositivo está orientado verticalmente (retrato) u horizontal (paisaje)?
¿Existe una API que simplifica esto o hacer lo que tiene que hacer la determinación "a mano", utilizando el acelerómetro?
Solución
Yo mismo acaba de mirar teléfonos de Windows 7 (a través de VS2010 Phone Edition Express).
Parece que tiene en el código detrás de este
public MainPage()
{
InitializeComponent();
// seems to set the supported orientations that your program will support.
SupportedOrientations = SupportedPageOrientation.Portrait | SupportedPageOrientation.Landscape;
}
A continuación, la forma real tiene
private void PhoneApplicationPage_OrientationChanging(object sender, OrientationChangedEventArgs e)
{
var test = e.Orientation;
}
Así que cuando la orientación cambia e.Orientation le dirá lo que la orientación es. Como por ejemplo LandscapeRight.
Otros consejos
También usted no tiene que realizar un seguimiento de esto sólo a través del evento, que se puede pedir directamente desde la instancia PhoneApplicationPage:
private void Button_Click(object sender, RoutedEventArgs e)
{
MyCurrentOrientation.Text = this.Orientation.ToString();
}
También puede pedir a través de this.Orientation cuando su aplicación se inicia para que sepa lo que es la orientación. Afther el inicio se puede utilizar el evento OrientationChanged.
En su principal:
OrientationChanged += new EventHandler<OrientationChangedEventArgs>(MainPage_OrientationChanged);
void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
{
Console.WriteLine(e.Orientation.ToString());
}