Переход на другую страницу при изменении ориентации - PullRequest
3 голосов
/ 25 февраля 2011

Я объясню, что я пытаюсь сделать в следующем примере:

У меня есть две страницы - MainPage.xaml (ориентация Портрет) и LandscapeLeft.xaml (ориентация LandscapeLeft).

Я хочу перейти от MainPage.xaml к LandscapeLeft.xaml, когда пользователь поворачивает телефон в позиции Lanscape.

Я сделал следующее:

XAML:

   SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"

код позади:

   protected override void OnOrientationChanged(OrientationChangedEventArgs e)
   {
       switch (e.Orientation)
       {
           case PageOrientation.LandscapeLeft:
               NavigationService.Navigate(new Uri("/LandscapeLeft.xaml", UriKind.RelativeOrAbsolute));
               break;
       }
       base.OnOrientationChanged(e);
   }

Когда я поворачиваю телефон из PortraitUp в положение LandscapeLeft, то, что происходит:
Сначала содержимое MainPage.xaml поворачивает ландшафт, и только затем загружается LandscapeLeft.xaml.

Что я хочу сделать, это исключить процесс ротации содержимого MainPage.xaml.Это не выглядит хорошо и влияет на производительность.Проще говоря, когда я поворачиваю телефон, я хочу, чтобы файл LandscapeLeft.xaml загружался без предварительного изменения ориентации содержимого MainPage.xaml.

Пожалуйста, какие-либо предложения?

Ответы [ 3 ]

5 голосов
/ 25 февраля 2011

Как насчет размещения вашего содержимого в рамке. Когда происходит событие ориентации, измените содержимое кадра вместо перехода на другую страницу.

 ...
         case PageOrientation.LandscapeLeft:
         FrmContents= new LandscapeLeft();
 ...  

Это должно решить ваши проблемы с производительностью.

3 голосов
/ 25 февраля 2011

Просто поместите все функции на одной странице, а затем измените то, что показано в зависимости от ориентации.

2 голосов
/ 25 февраля 2011

С точки зрения "пользователя", я не думаю, что вы должны использовать Navigation для достижения этого эффекта.

Навигация действительно тесно связана с кнопкой «Назад», поэтому пользователь обычно не привязывает ее к ориентации устройства.

Вещи, которые вы, вероятно, могли бы сделать:

  • рассмотрите возможность размещения элементов управления портретной и альбомной ориентации в mainpage.xaml - просто измените «видимость» двух элементов управления в зависимости от ориентации.
  • если возможно, рассмотрите возможность использования одинаковых элементов управления для обеих ориентаций, но с соответствующими изменениями компоновки для двух ориентаций.

Я написал приложения, которые поддерживают обе ориентации - кажется, они действительно хорошо работают - какие проблемы с производительностью вы видите?

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