Управление Авторотацией в приложениях Windows 8 metro


Как я могу управлять Авторотацией Windows 8 приложений.
Я прошел через образец "вращения" из MSDN, но это чертовски запутанно , что мне нужно сделать, мне нужно иметь совершенно другой взгляд, когда в портрете и другой в ландшафте. Я разработал свой вид для ландшафта, когда мне нужно внести изменения для портретного вида. Мне нужен способ динамического переключения между представлениями для повторного перетасовки представлений.

3 2

3 ответа:

Безусловно, самый простойспособ справиться с этим-унаследовать вашу страницу от LayoutAwarePageвместо Pageи использовать визуальный менеджер состояния внутри Expression Blend, чтобы сделать всю работу за вас.

У меня есть полная статья с большим количеством фотографий и загружаемый пример приложения здесь:

Http://jaredbienz.wordpress.com/2012/04/22/wp-to-w8-view-states-using-visual-state-manager/

Введите описание изображения здесь

Вы определенно захотите использовать здесь элемент управления FlipView. Я не знаю, используете ли вы JavaScript/HTML5 или C#/XAML, но он доступен в любом случае.

Есть отличный пример на MSDN, чтобы показать вам, как это сделать, но без дополнительного контекста по вашей проблеме, я не знаю, насколько больше я могу помочь.

Http://code.msdn.microsoft.com/windowsapps/FlipView-control-sample-18e434b4

Вы можете обрабатывать изменения ориентации двумя основными способами...

1) подход грубой силы. Провод в событие orientationchanged...
            Windows.Graphics.Display.DisplayProperties.OrientationChanged += DisplayProperties_OrientationChanged;

В дескрипторе событий проверьте ориентацию и перейдите на страницу, которая была специально разработана для этой ориентации...

if (Windows.Graphics.Display.DisplayProperties.CurrentOrientation == DisplayOrientations.Portrait)
            this.Frame.Navigate(typeof(PortraitPage));

Плюсы... легко создавать страницы, оптимизированные для заданных ориентаций Аферы... необходимость обработки данных навигации и состояния между страницами

2) Создайте одну страницу, которая изменяет свой макет. использование визуальных состояний. Вы по-прежнему подключаетесь к событию orientationchanged, но вызываете VisualStateManager.GoToState(this,"Portrait",true).или что-то подобное в зависимости от того, как вы называете свои визуальные состояния.

Плюсы... измените макет без навигации, и вы можете легко добавлять интересные анимации Аферы... более сложный макет может быть сложнее, если вы не знакомы с расширенными макетами xaml и viewStates

Если вы посмотрите на образцы шаблонов (кроме пустых), они включают LayoutAwarePage, который обрабатывает viewstate переходы для вас, немного упрощающие вещи.