День #3. Ориентация экрана

Posted on Ноябрь 16, 2010

3


Привет всем!

Как я и обещал, сегодня мы поговорим про ориентацию экрана. В общем существует 2 режима: Портретный и Ландшафтный(иногда называют пейзажным). Представьте себе, как выглядит портрет в большинстве случаев. Так вот, портретный режим это когда ваше устройство расположено вертикально, ландшафтный, соответственно, наоборот. По умолчанию студия запускает и создает приложение в портретном режиме,а XNA в ландшафтном.

Ориентация по умолчанию

При создании проекта мы видим что устройство расположено по вертикали, значит стандартная ориентация — Портретная.

Обратите внимание на строку:


SupportedOrientations="Portrait" Orientation="Portrait"

SupportedOrientations это список возможных ориентаций вашего экрана

  • Portrait (по умолчанию)
  • Landscape
  • PortraitOrLandscape
А вот Orientation задает положение в котором запустится наше приложение
  • Landscape
  • LandscapeLeft
  • LandscapeRight
  • Portrait
  • PortraitDown (нормальная вертикальная позиция)
  • PortraitUp (телефон кнопками вверх)
Итак, зная это все, вы можете сделать так, что бы приложение запускалось с любой ориентацией экрана. Обладая этим набором знаний создадим не сложный интерфейс для калькулятора
Я установил поддержку обоих ориентаций и сейчас перевернув устройство, понял, что не все влазит.
Есть различные способы решения этой проблемы. Первый, и на мой взгляд самый верный, не разрешайте приложению переворачиваться 🙂
Но если все же это необходимо, то рассмотрим небольшой пример со скрытием названия. На самом деле пример настолько не большой что я вставлю весь код
using System;
using System.Windows;
using Microsoft.Phone.Controls;

namespace day_3_device_orientation
{
	public partial class MainPage : PhoneApplicationPage
	{
		public MainPage()
		{
			InitializeComponent();
			this.OrientationChanged += new EventHandler<OrientationChangedEventArgs>(MainPage_OrientationChanged);
		}

		void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
		{
			if ((e.Orientation == PageOrientation.LandscapeRight) || (e.Orientation == PageOrientation.LandscapeLeft))
			{
				TitlePanel.Visibility = Visibility.Collapsed;
			}
			else if ((e.Orientation == PageOrientation.PortraitDown) || (e.Orientation == PageOrientation.PortraitUp))
			{
				TitlePanel.Visibility = Visibility.Visible;
			}
		}
	}
}

И после этого, мы видим:

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

Код можно скачать тут.

Завтра мы поговорим о кнопке «Назад» и о том как же правильно ее использовать.

День #4. Кнопка «Назад».

Реклама