Как определить ориентацию Windows Phone 7? - PullRequest
4 голосов
/ 19 марта 2010

Как определить, ориентировано ли устройство вертикально (книжная ориентация) или горизонтально (альбомная)?

Есть ли API, который упрощает это, или вам нужно сделать определение "вручную", используя акселерометр?

Ответы [ 3 ]

4 голосов
/ 19 марта 2010

Я сам только что посмотрел на телефоны Windows 7 (через vs2010 Express Phone Edition).

Кажется, что в коде этого

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

Тогда фактическая форма имеет

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

        }

Так что, когда ориентация меняется, e.Orientation скажет вам, какая это ориентация. Как, например, LandscapeRight.

2 голосов
/ 03 апреля 2010

Также вам не нужно отслеживать это только через событие, вы можете запросить его непосредственно из экземпляра PhoneApplicationPage:

private void Button_Click(object sender, RoutedEventArgs e)
{
    MyCurrentOrientation.Text = this.Orientation.ToString();
}
0 голосов
/ 19 марта 2010

Вы также можете спросить это через эту. Ориентацию, когда ваше приложение запускается, чтобы вы знали, какова ориентация. После начала вы можете использовать событие OrientationChanged.

В вашей главной:

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

void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e)

{

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...