Как установить свойство «Поддерживаемые ориентации» в Windows Phone 8.1

Некоторое время назад я написал приложение для WP 8, сейчас работаю над его обновлением для WP 8.1.

Мои навыки работы с XAML и C# значительно улучшились с момента первоначального запуска, поэтому я решил переписать его с нуля, чтобы не копаться в старом нубском коде (да... это некрасиво).

Одна вещь, которую я не могу понять, это то, как справляться с включением и отключением изменения ориентации для приложения. Я нашел способ сделать полное включение/отключение с помощью «Package.appmanifest». Однако это не совсем то, что мне нужно.

Я просто написал это в верхней части страниц моего приложения в старой версии:

<phone:PhoneApplicationPage
SupportedOrientations="PortraitOrLandscape"
etc...
etc...
>

Меня это очень устраивало, так как некоторые страницы просто не работали ни в портретном, ни в ландшафтном режиме. (Я потратил больше времени, чем мне хочется, пытаясь заставить его работать...) Но это не будет работать в 8.1.

Может ли какая-нибудь добрая душа знать способ установить желаемую поддержку ориентации для каждой страницы в Windows Phone 8.1?


person Ize    schedule 18.07.2014    source источник


Ответы (1)


Вы могли бы сделать это, если бы хотели просто портрет

DisplayInformation.AutoRotationPreferences = DisplayOrientations.Portrait;

Или это, если вы хотели Портрет и Пейзаж

DisplayInformation.AutoRotationPreferences = DisplayOrientations.Portrait | DisplayOrientations.Landscape;

Или, если вы хотите просто Пейзаж и Пейзаж перевернутый

DisplayInformation.AutoRotationPreferences = DisplayOrientations.LandscapeFlipped | DisplayOrientations.Landscape;

и т. д. на каждой странице, поэтому вы можете включать/отключать ориентацию в зависимости от страницы и того, как вы собираетесь ее использовать. Например, вы можете установить его в обработчике событий OnNavigatedTo.

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    DisplayInformation.AutoRotationPreferences = DisplayOrientations.LandscapeFlipped | DisplayOrientations.Landscape;

    this.navigationHelper.OnNavigatedTo(e);
}

Узнайте больше о DisplayInformation.AutoRotationPreferences здесь.

person Igor Ralic    schedule 18.07.2014