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?

¿Fue útil?

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());

}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top