Опубликован: 02.08.2013 | Доступ: свободный | Студентов: 468 / 15 | Длительность: 18:38:00
Специальности: Программист
Лекция 6:

Шаблоны проектов, структура проектов

Структура проекта приложения для Windows Phone

На рис. 7.2. приведено окно Visual Studio для проекта, созданного по шаблону Приложение Windows Phone, в качестве целевой платформы при создании данного проекта выбрана Windows Phone OS 8.0.. Здесь и далее по умолчанию подразумевается, что речь идёт именно об этой целевой платформе. В некоторых случаях мы будем касаться и Windows Phone 7, тогда это будет отмечено особо.

Проект приложения, созданный по шаблону Приложение Windows Phone

увеличить изображение
Рис. 7.2. Проект приложения, созданный по шаблону Приложение Windows Phone

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

MainPage.xaml и сопутствующий ему файл кода Mainpage.xaml.cs – это стартовая страница нашего приложения. Она отобразится при его запуске. Именно здесь размещают элементы управления. Название этого файла может быть любым, однако, для того, чтобы именно он был открыт при старте приложения, его имя должно быть записано в параметр Страница навигации в файле WMAppManifest.xml.

В XAML-коде файла описывается макет страницы, здесь производятся различные настройки. В частности, в заголовочной части разметки можно задать поддерживаемые ориентации экрана (по умолчанию – портретная ориентация, SupportedOrientations="Portrait") и ориентацию, в которой начальная страница приложения оказывается после его запуска (Orientation="Portrait"). Здесь же по умолчанию заданы некоторые ресурсы, которые соответствуют ресурсам Windows Phone. Например, благодаря использованию данного объявления: Foreground="{StaticResource PhoneForegroundBrush}" фон страницы (или других элементов, если для них данное свойство не переопределено) будет соответствовать цвету фона (светлому или тёмному), выбранному в системе.

Содержимое страницы по умолчанию размещено в элементе управления Grid (сетка) с именем LayoutRoot. При стандартном размещении элементов в верхней части страницы выводится название приложения, ниже идёт название страницы (эти элементы организованы с помощью элемента управления StackPanel (стек-панель) с именем TitlePanel) оставшаяся область предназначена для другого содержимого – здесь размещена пустая сетка с именем ContentPanel. Это – лишь рекомендуемое устройство страницы, от которого, если это продиктовано обоснованными причинами, вполне можно отступать.

Для того, чтобы во время работы над дизайном страниц придерживаться стандартного расположения элементов управления по сетке, можно раскомментировать соответствующий участок разметки (<!--<Image Source="/Assets/AlignmentGrid.png" VerticalAlignment="Top" Height="800" Width="480" Margin="0,-32,0,0" Grid.Row="0" Grid.RowSpan="2" IsHitTestVisible="False" />-->). Он выводит на страницу изображение сетки для выравнивания элементов, AlignmentGrid.png, расположенное в папке Assets. В коде страницы есть пояснительные комментарии по этому поводу. В частности они говорят о том, что и данный код, и само изображение, нужно удалить из готового приложения перед отправкой в Магазин Windows Phone. Подобной стратегии следует придерживаться и при работе с другим кодом или ресурсами, которые используются как вспомогательные в ходе разработки и не нужны в готовом приложении.

Если на страницу нужно добавить панель приложения (объект Microsoft.Phone.Shell.ApplicationBar, http://msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.phone.shell.applicationbar%28v=vs.105%29.aspx), это так же выполняется в XAML-коде страницы. Работать с XAML-кодом нужно будет и при локализации приложения.

В файле MainPage.xaml.cs содержится программный код для соответствующей страницы. Обычно здесь располагается код для обработчиков событий элементов страниц (кнопок, переключателей), код для обработки событий перехода по страницам. Здесь, чисто технически, может быть расположен любой код, но на практике сюда обычно включают минимум кода, необходимый для обеспечения функционирования интерфейса страницы, вынося основную логику во внешние классы, что облегчает тестирование и поддержку приложения. Идея о разделении интерфейсных механизмов и программной логики приложения нашла развитие в шаблоне проектирования MVVM.

В исходном файле содержится лишь конструктор, в нем вызывается метод InitializeComponent(), код метода расположен в автоматически генерируемом системой файле MainPage.g.i.cs, посмотреть его можно, если вызвать контекстное меню для строки InitializeComponent() и выбрать там команду Перейти к определению (или клавишу F12). Файл не предназначен для ручного редактирования, однако, его анализ может помочь в решении проблем. Проблемы могут быть вызваны ошибками в соответствующем XAML-файле.

Как уже было сказано, при запуске приложения для Windows Phone 8 по умолчанию открывается MainPage.xaml Если говорить о запуске приложения, то в ходе этого процесса можно отображать экран-заставку (подробности об экранах-заставках можно найти здесь: http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff769511%28v=vs.105%29.aspx). Как правило, если речь идёт о приложении, которое запускается очень быстро, от экрана-заставки можно отказаться. Более того, такой подход удобнее с точки зрения пользователя – подобное поведение программы, особенно, если она нацелена на решение какой-нибудь часто возникающей практической задачи, меньше утомляет пользователя. И, хотя на экране-заставке можно отобразить какие-либо сведения о разработчике, возможно – с целью привлечь пользователя к другим приложениям, следует проанализировать необходимость включения экрана-заставки в проект, если без него можно обойтись.

В проект приложения, рассчитанного на Windows Phone 8, не входит изображение для экрана-заставки, если в нём есть необходимость, его можно добавить в корневой раздел проекта, назвав SplashScreenImage.jpg. Для того, чтобы добавить подобный файл в проект, сначала нужно создать его в каком-нибудь внешнем приложении (в нашем случае создано изображение размером 480х800), затем сохранить в формате jpg, после чего, вызвав в Visual Studio контекстное меню проекта, выбрать в нём команду Добавить > Существующий элемент. Будет открыто окно Добавление существующего элемента, где нужно выбрать созданный файл. Обратите внимание на то, что в свойствах этого файла параметр Действие при построении должен быть установлен в значение Содержание. Когда в проект добавлен подобный файл (рис. 7.3), запуск приложения будет сопровождаться показом экрана-заставки.

Структура проекта после добавления файла экрана-заставки

увеличить изображение
Рис. 7.3. Структура проекта после добавления файла экрана-заставки