Come determinare l'orientamento di Windows Phone 7?
-
20-09-2019 - |
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?
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());
}