Разработка Windows 8.1 приложений. Windowing. Часть 2

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

Портретный режим

При изменении размера приложения наступит момент, когда высота будет больше, чем ширина. Это портретный режим. Именно поэтому вы должны разрабатывать портретный режим для ваших приложений.

Для этого:

  • Добавьте новый элемент VisualState для вашего XAML. Давайте назовем его PortraitLayout.
  • Используйте VisualStateManager для вызова этого состояния, когда ширина приложения меньше высоты.

png;base64bd033d3b40526c7c

png;base64a2050a841c30d718

Моя страница теперь содержит три состояния: один для 320px, один для портретного режима и один для любой другой ситуации. Когда срабаывает событие SizeChanged, если высота приложение больше ширины, используется PortraitLayout. В этом состоянии скрывается DefaultLayout и NarrowLayout и отображается только PortraitLayout.

png;base6431b0f311edcb25e8

Ниже приведены некоторые рекомендации, которым стоит следовать при переходе в портретный режим:

  1. Перейти к вертикальному шаблону
  2. Внести изменения в дизайн, если необходимо
  3. Поддерживать функциональность приложения
  4. Оставить те же самые размеры и отступы ваших элементов

Масштабирование

В зависимости от плотности экрана, в Windows можно масштабировать приложения и ресурсы. Например, кнопка площадью 40px будет гораздо меньше на 10,6″ 1920 * 1080 дисплее, нежели на 24″ 1920*1080.

Windows определяет три масштаба:

  • 100%: по умолчанию
  • 140%: используется при высоком разрешении экрана
  • 180%: используется при очень высоком разрешении экрана

png;base641efd4b678e4b7f02

Вы можете предоставить свои ресурсы для всех трех масштабных коэффициентов для обеспечения эффективного масштабирования.

Чтобы сделать это, вам необходимо правильно именовать файл ваших изображений:

  • [image_name].scale-100.jpg
  • [image_name].scale-140.jpg
  • [image_name].scale-180.jpg

Вот так вы можете обращаться к нему:

png;base6476d0dfa5a4ffdf5d

Обратите внимание, что вы также можете назвать так папку:

  • \ scale-100\ image.jpg
  • \ scale-140\ image.jpg
  • \ scale-180\ image.jpg

Вот и все, что вам нужно сделать! Помните, что симулятор поможет вам протестировать приложений на разных разрешениях экрана.

Возможности Launcher’а

Приложения связаны. Они используют URL или файлы протокола для связи. С Windows 8 и старой многозадачной моделью, когда приложение было запущено из другого, оно запускалось в полноэкранном режиме.

В Windows 8.1, пользователи могут использовать до 4 приложений одновременно, они не хотят потерять контексте того, что они делают, когда открывается новое.

Чтобы запустить приложение, вы должны использовать API Launcher. Этот класс определяет два метода:

  1. LaunchUriAsync: принимает URI в качестве параметра
  2. LaunchFileAsync: принимает IStorageFile в качестве параметра

Эти два метода также принимают объект LauncherOptions в качестве второго дополнительного параметра. В Windows 8.1, класс LauncherOptions теперь имеет свойство DesiredRemainingView типа ViewSizePreference. Это перечисление, которое используется для определения места запуска приложения. Оно содержит следующие значения:

  • Default: значение по умолчанию. Если в приложении не указано предпочтительный размер, будет использоваться UseHalf
  • UseLess: запускаемое приложение использует менее 50% экрана
  • UseHalf: оба приложения используют половину экрана
  • UseMore: запускаемое приложение использует более 50% экрана
  • UseMinimum: запускаемое приложение настроено на использование минимального размера(500 или 320 пикселей)
  • UseNone: запускаемое приложение использует 100% экрана

Например, если мы используем следующий код, то приложение Bing News будет запущено и использовать 50% экрана.

png;base64c98cc8b552a921ca

png;base64b439b6d7f5d5873c

Если мы устанавливаем DesiredRemainingView в ViewSizePreference.UseMinimum, пусковая приложение будет использовать 320 пикселей, потому что минимальный размер, определенный в манифесте установлен в 320.

png;base6425135a05e29c5863

png;base641fb30f7f451722f1

Предпочтение размера не всегда соблюдается (вот почему это называется «предпочтение»). Некоторые приложения могут переопределить этот параметр. Вот пример:

png;base64cb10830c4233d16c

png;base649a15432adfd9107f

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

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

png;base6444a02e0585be7397

Когда эта опция установлена​​, она всегда будет переопределить значение LauncherOption DesiredRemainingView. Короче говоря, когда вы запускаете приложение, вы можете указать предпочтительный размер, но вы никогда не можете быть уверенными, что так оно будет на самом деле.

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

Ссылка на источник: Developing a Windows 8.1 application (4/8): Windowing

 

Advertisements
Tagged with: , , , , , ,
Опубликовано в Development, Windows 8.1

Добавить комментарий

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

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: