Любой метод похож на OnOrientationChanged? - PullRequest
2 голосов
/ 30 марта 2011

Есть ли такой метод, как protected override void OnOrientationChanged(OrientationChangedEventArgs e), который работает, когда SupportedOrientations="Portrait"?

Я пытаюсь реализовать некоторые жесты, такие как:

  • Пользователь поворачивает телефон в левую позицию, и выполняется некоторый код
  • Пользователь поворачивает телефон в правильное положение и выполняется другой код

Мое приложение ориентировано на PortraitUp. Когда я устанавливаю SupportedOrientations="PortraitOrLandscape", содержимое начинает вращаться.

Или, возможно, мне следует использовать акселерометр для управления положением телефона?

Ответы [ 2 ]

3 голосов
/ 30 марта 2011

Звучит так, будто вы за акселерометром, в Codeplex есть несколько помощников, которые могут помочь вам:

http://accelerometer.codeplex.com/ - наглядное пособие для понимания того, что происходит с акселерометром http://phone7actionpack.codeplex.com/ - включает изменение поведения визуального состояния при повороте телефона.

2 голосов
/ 30 марта 2011

Похоже, что вы после события типа "OnOrientationChangedToLandscapeLeft" (и аналогичных).
Это не существует, но вы можете создать это самостоятельно с тем, что существует.

В пределах OnOrientaionChanged событие, которое вы можете определить, в каком направлении поворачивается экран, проверив аргумент e и затем выполнив соответствующий код.
Что-то вроде:

if (e.Orientation == PageOrientation.LandscapeLeft)
{
    // Do whatever you want to here
}
else if (e.Orientation == PageOrientation.LandscapeRight)
{
    // Do something else here
}
else
...
...