Domanda

Come si può dire se il dispositivo è orientato verticalmente (portrait) che in orizzontale (paesaggio)?

C'è un'API che semplifica questo o avete per rendere la determinazione "a mano" utilizzando l'accelerometro?

È stato utile?

Soluzione

io stesso appena guardato windows 7 cellulari (attraverso VS2010 Phone Edition Express).

E sembra avere nel codice alla base di questo

 public MainPage()
        {
            InitializeComponent();
            // seems to set the supported orientations that your program will support.
            SupportedOrientations = SupportedPageOrientation.Portrait | SupportedPageOrientation.Landscape;
        }

Poi la forma attuale ha

  private void PhoneApplicationPage_OrientationChanging(object sender, OrientationChangedEventArgs e)
        {
            var test = e.Orientation;

        }

Così, quando l'orientamento cambia e.Orientation vi dirà che cosa è l'orientamento. Come per esempio LandscapeRight.

Altri suggerimenti

Inoltre non c'è bisogno di tenere traccia di questo solo tramite l'evento, è possibile chiedere direttamente dall'istanza PhoneApplicationPage:

private void Button_Click(object sender, RoutedEventArgs e)
{
    MyCurrentOrientation.Text = this.Orientation.ToString();
}

Si può anche chiedere attraverso this.Orientation quando avvia l'applicazione in modo da sapere ciò che l'orientamento è. Afther l'inizio è possibile utilizzare l'evento OrientationChanged.

Nel vostro principale:

OrientationChanged += new EventHandler<OrientationChangedEventArgs>(MainPage_OrientationChanged);

void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e)

{

   Console.WriteLine(e.Orientation.ToString());

}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top