Структура проекта Windows Phone

Создайте новый проект в Visual Studio и посмотрите на окно Solution Explorer. В Solution Explorer хорошо видна структура решения, созданного на основе выбранного шаблона Windows Phone Application. В нашем случае в этом окне содержится один проект WP7HelloWorld.

Проект содержит следующие файлы:

App.xamlсодержит точку входа программы в разметке XAML, инициализирует ресурсы програмы и выводит программу на экран
App.xaml.csсодержит точку входа программы в коде C#, инициализирует ресурсы програмы и выводит программу на экран
MainPage.xaml/MainPage.xaml.csсодержит страницу с пользовательским интерфейсом в разметке XAML
MainPage.xaml.csсодержит страницу с пользовательским интерфейсом в коде C#
ApplicationIcon.pngфайл значка в формает PNG, который выводится в списке приложений телефона
Background.pngфайл изображения в формате PNG, который выводится на стартовой странице
SplashScreenImage.jpgфайл изображения, которое выводится во время загрузки приложения. Вы можете заменить на свою картинку
Properties/AppManifest.xmlманифест, необходимый для создания сборки
Properties/AssemblyInfo.csсодержит метаданные о имени и версии приложения, которые встраиваются в сборку
Properties/WMAppManifest.xmlманифест, который содержит специальные данные о приложении для Windows Phone Silverlight
папка Referencesразличные библиотеки (сборки), которые обеспечивают работоспособность приложения

Файл App.xaml

Найдите в окне файл под именем app.xaml. В этом файле содержится информация о цветах, кистях и стилях элементов базового дизайна для шаблона.

Щелкните в Solution Explorer правой кнопкой мыши на файле App.xaml и выберите пункт View Designer (Shift+F7). Обратите внимание, что файл содержит разметку XAML с корневым элементом Application c разделом Application.Resources. Здесь можно найти информацию о цветах, кистях и стилях. Первая страница приложения определена в свойстве VisualRoot элемента Application.

Код XAML также инициализирует свойство ApplicationLifetimeObjects элемента Application для создания объекта PhoneApplicationService. Класс PhoneApplicationService обеспечивает доступ к различным аспектам жизненного цикла приложения. Сюда входит управление поведением приложения во время простоя, а также состоянием приложения в тот момент, когда оно становится активным или неактивным.

Файл App.xaml вместе с файлом с выделенным кодом App.xaml.cs определяют экземпляр класса Application. Этот класс включает приложение Silverlight для Windows Phone и предоставляет точку входа в него.

Файл App.xaml

Разберем подробнее код App.xaml

<Application 
    x:Class="WindowsPhoneApplicationHelloWorld.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"       
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">

Корневым элементом является Application - класс Silverlight, от которого наследуется класс App (вторая строчка). Также корневой элемент включает описания четырех пространст имен. Первые два из них являются общими для всех приложений Silverlight, остальные два используются только в приложениях для телефонов.

Первым объявляется пространстов имен xmlns, стандартное для Silverlight. Оно используется компилятором для идентификации классов Silverlight, таких же как сам класс Application. Сам адрес не ведет никуда, это зарезервированный для специальных целей URI, который принадлежит Microsoft.

Второе пространство имен имеет префикс "x" (xmlns:x), что указывает на связь с XAML. Позволяет ссылатья в файле на некоторые элементы и атрибуты XAML. К таким атрибутам можно отнести x:Class. В нашем примере x:Class присвоено имя WindowsPhoneApplicationHelloWorld.App. Это означает, что класс App в пространстве имен SilverlightHelloPhone наследуется от Silverlight-класса Application, корневого элемента.

Файл App.xaml.cs

Щелкните правой кнопкой мыши файл App.xaml в обозревателе решений и выберите команду View Code, чтобы открыть файл App.xaml.cs в редакторе кода. Обратите внимание, что в своем конструкторе этот класс, производный от класса Application, уже подписывается на обработчик события UnhandledException.

Свойство RootFrame в классе Application определяет первую страницу приложения. Во всех приложениях Windows Phone есть один элемент контейнера верхнего уровня, относящийся к типу данных PhoneApplicationFrame. В кадре размещаются один или несколько элементов PhoneApplicationPage, представляющих содержимое для приложения. Кроме того, этот элемент обрабатывает переходы между страницами.

Класс Application, созданный с помощью шаблона приложения Silverlight для Windows Phone, среди прочего включает обработчики событий Launching и Closing. Эти методы можно изменить, добавив в них код для выполнения каких-либо заданий при запуске и закрытии приложения Windows Phone.

Интересно отметить, что файлы App.xaml.cs и App.xaml описывают две части одного и того же класса App. Во время компиляции Visual Studio проводит синтаксический разбор App.xaml и формирует еще один файл App.g.cs. Буква "g" означает "generated" (автоматически сформированный). Файл располагается в подпапке \obj\Debug проекта. App.g.cs также является частичным описанием класса App и включает метод InitializeComponent, который вызывается из конструктора в файле App.xaml.cs.

Вы можете редактировать файлы App.xaml и App.xaml.cs, а редактирование файла App.g.cs не имеет смысла, так как файл создается заново при каждой сборке проекта.

При запуске программы класс App создает объект типа PhoneApplicationFrame (Рамка) и присваивает этот объект собственному свойству RootVisual. Рамка имеет размеры 480 на 800 и занимает весь экран. Далее объект PhoneApplicationFrame переходит к объекту MainPage.

В файле App.xaml.cs есть строчка


Application.Current.Host.Settings.EnableFrameRateCounter = true;

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

Файлы MainPage.xaml и MainPage.xaml.cs

Класс MainPage является вторым основным классом любого приложения на Silverlight, который отвечает за его внешний вид и описывается парой файлов MainPage.xaml и MainPage.xaml.cs. В небольших приложениях больше всего внимания разработчики уделяют именно этим двум файлам.

MainPage.xaml.cs

Если не считать длинный список директив using, файл Main.Page.xaml.cs очень простой.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

namespace WindowsPhoneApplicationHelloWorld
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
        }
	}
}

Директивы using для пространств имен, начинающих со слов System.Windows, предназначены для классов Silverlight. В некоторых случаях вам придется добавлять другие пространства имен. Пространство имен Microsoft.Phone.Controls включает расширения для телефона, в том числе класс PhoneApplicationPage (страница приложения).

Наличие слова partial говорит о том, что мы видим частичное описание класса MainPage, который в свою очередь является производным от Silverlight-класса PhoneApplicationPage. Класс определяет визуальные элементы, которые мы видим на экране при выполнении программы.

MainPage.xaml

MainPage.xaml

Вы можете создавать видимые элементы интерфейса при помощи XAML-декларативного языка разметки. Он очень удобен и будет понятен тем, кто имеет опыт веб-разработок. Рассмотрим XAML-код простого приложения подробнее.

<phone:PhoneApplicationPage 
    x:Class="WindowsPhoneApplicationHelloWorld.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">
	
    <!--LayoutRoot is the root grid where all page content is placed-->
    <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!--TitlePanel contains the name of the application and page title-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="WINDOWS PHONE 7" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="hello world" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>

        <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

        </Grid>
    </Grid>
 
    <!--Sample code showing usage of ApplicationBar-->
    <!--<phone:PhoneApplicationPage.ApplicationBar>
        <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
            <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1"/>
            <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2"/>
            <shell:ApplicationBar.MenuItems>
                <shell:ApplicationBarMenuItem Text="MenuItem 1"/>
                <shell:ApplicationBarMenuItem Text="MenuItem 2"/>
            </shell:ApplicationBar.MenuItems>
        </shell:ApplicationBar>
    </phone:PhoneApplicationPage.ApplicationBar>-->

</phone:PhoneApplicationPage>

Первые четыере описания пространств имен XML схожи с описаниями в файле App.xaml. Здесь также атрибут x:Class находится в корневом элементе и показывает, что класс MainPage в пространстве имен SilverlightHelloPhone наследуется от Silverlight-класс PhoneApplicationPage. Класс PhoneApplicationPage требует собственного описания пространства имен, поскольку не является частью стандартного Silverlight.

Описания пространств имен с префиксами "d" (designer) и "mc" (markup compatibility) предназначены для редактора Expression Blend и встроенного дизайнера в самой Visual Studio. Атрибуты DesignWidth и DesignHeight игнорируются во время компиляции.

При компиляции автоматически формируется файл MainPage.g.cs (папка \obj\Debug), который содержит еще одну часть описания класса MainPage. Она включает метод InitializeComponent, который вызывается из конструктора в файле MainPage.xaml.cs

Файл MainPage.g.cs и упомянутый ранее файл App.g.cs формируются автоматически в процессе сборки исключительно в целях внутреннего использования компилятором, и разработчики могут не обращать на них внимания. Но в некоторых случаях при большом количестве ошибок в программе, на экране иногда появляется один из этих файлов. Анализ файлов порой может разобраться в проблеме. Но не нужно редактировать сами файлы, чтобы решить проблему! Найдите проблему в соответствующем XAML-файле.

В корневом элементе MainPage.xaml можно найти настройки FontFamily, FontSize, Foreground, которые предназначены для настроек шрифта страницы в целом.

Кроме того можно увидеть несколько вложенных элементов Grid, StackPanel и TextBlock. Вложенные элементы в MainPage.xaml формируют визуальное дерево элементов, которое всегда начинается с объекта типа PhoneApplicationFrame, занимающего все поверхность отображения телефона. В программе на Silverlight для Windows Phone 7 всегда есть только один единственный экземпляр PhoneApplicationFrame.

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

По умолчанию в режиме Designer документ выводится в окне, разбитом на две части. Одна часть показывает разметку XAML, а другая выводит внешний вид приложения в WYSIWYG-редакторе. В выбранном шаблоне имеются элементы для вывода имени приложения и заголовка. Вы можете удалить их, если они вам не нужны.

ApplicationIcon.png

Файл ApplicationIcon.png содержит значок, с помощью которого можно быстро запустить программу на устройстве. По умолчанию используется белая шестеренка на черном фоне. Двойной щелчок на файле в Solution Explorer запустит графический редактор, ассоциированный с файлом PNG (например, mspaint.exe). В Visual Studio 2010 запустится встроенный редактор изображений.

SplashScreenImage.png

Загрузочный экран (Splash screen) показывает пользователю, что приложение загружается. При создании Silverlight-проекта автоматически создается файл SplashScreenImage.png размером 480 x 800 пикселей. Вы можете заменить стандартный загрузочный экран на собственный. При этом он должен иметь такие же размеры и имя. Свойство Build Action должно быть установлено в Content.

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

Вы можете изучить пример Splash Screen sample на сайте Microsoft

Для XNA-проектов рекомендуется создавать собственные загрузочные экраны, а не использовать стандартный SplashScreenImage.jpg.

Используйте следующие шаги

  • В методе Initialize() вызовите base.Initialize() для создания GraphicsDevice
  • Загрузите текстуру. Размер и ориентация должна соответствовать вашей игре. Установите texture в auto resize to power of 2. Use DXT Compressed format.
  • Создайте SpriteBatch
  • Render the texture
  • Вызовите GraphicsDevice.Present()
  • В методе Update() загрузите контент
  • В методе Draw() продолжайте рисовать начальную текстуру и переключитесь на загрузку анимации, как только необходимые ресурсы будут загружены.

References

Как и любое .NET-приложение, программа для Windows Phone содержит множество классов, которые определены в библиотеках. Чтобы программа знала, откуда брать информацию о классах, необходимо подключить ссылки к этим библиотекам.

Чтобы увидеть сборки, связанные с проектом, раскройте узел References в Solution Explorer и изучите список. Он содержит стандартные Silverlight-сборки, специфичные для устройств Windows Phone.

References

Properties

Файлы, которые содержатся в папке Properties, можно редактировать только через специальное диалоговое окно, которое можно вызвать через контекстное меню проекта. Щелкните правой кнопкой мыши на имени проекта в Solution Explorer и выберите пункт Properties.

Окно свойств проекта позволяет настроить различные параметры приложения. Параметры хранятся в файле WMAppManifest.xml, о котором пойдет речь ниже.

Окно свойств

Файл WMAppManifest.xml

Любой проект на Windows Phone имеет манифест, котороый генерируется автоматически в Visual Studio и находится в файле под именем WMAppManifest.xml. По сути, это XML-файл, содержащий различные метаданные: идентификатор продукта, номер версии, путь к ресурсам, возможности устройства и другую полезную информацию. Файл не нужно редактировать вручную, так как это можно привести к неработоспособности приложения. Файл автоматически обновляется каждый раз при компиляции приложения. Файл необходим для следующих целей:

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

Файл WMAppManifest.xml можно увидеть в папке Properties в Solutions Explorer. Для проектов на Silverlight и XNA манифест практически совпадает за исключением некоторых отличий.

Манифест для Silverlight-проектов

 
<?xml version="1.0" encoding="utf-8"?>
 
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.0">
  <App xmlns="" ProductID=" {00000000-0000-0000-0000-000000000000} Title="WindowsPhoneApplication" 
  RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal" Author="[Project Name] author" 
  Description="Sample description" Publisher="[Project Name]">
    <IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath>
    <Capabilities>
      <Capability Name="ID_CAP_GAMERSERVICES"/>
      <Capability Name="ID_CAP_IDENTITY_DEVICE"/>
      <Capability Name="ID_CAP_IDENTITY_USER"/>
      <Capability Name="ID_CAP_LOCATION"/>
      <Capability Name="ID_CAP_MEDIALIB"/>
      <Capability Name="ID_CAP_MICROPHONE"/>
      <Capability Name="ID_CAP_NETWORKING"/>
      <Capability Name="ID_CAP_PHONEDIALER"/>
      <Capability Name="ID_CAP_PUSH_NOTIFICATION"/>
      <Capability Name="ID_CAP_SENSORS"/>
      <Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
    </Capabilities>
    <Tasks>
      <DefaultTask  Name ="_default" NavigationPage="MainPage.xaml"/>
    </Tasks>
    <Tokens>
      <PrimaryToken TokenID="Token" TaskName="_default">
        <TemplateType5>
          <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
          <Count>0</Count>
          <Title>WindowsPhoneApplication</Title>
        </TemplateType5>
      </PrimaryToken>
    </Tokens>
  </App>
</Deployment>

Атрибуты

Рассмотрим атрибуты файла, которые справедливы для обоих типов проектов.

< Deployment ></ Deployment >

Корневой элемент, содержащий информацию о приложении и локализации при развертывании.

Атрибут Описание
xmlns Пространство имен XML. По умолчанию "http://schemas.microsoft.com/windowsphone/2009/deployment"
AppPlatformVersion Тип: String. Версия Windows Phone Developer Tools. По умолчанию равно 7.0.

<App></App>

Элемент App является дочерним элементом элемента Deployment и содержит множество полезной информации: идентификаторы, версии, тип приложения и т.д.:

Атрибут Описание
ProductIDТип: String. По умолчанию используется GUID проекта (128 бит). В процессе подачи заявления новый идентификатор продукта вставляется в манифест.
Title Тип: String. Имя проекта, которое является названием приложения и показывается на устройстве в списке приложений и в хабе Games.
RuntimeType Тип: String. Определят тип приложения: Silverlight или XNA Framework./td>
Version Тип: String. Значение по умолчанию "1.0.0.0".
Genre Тип: String. Для Silverlight: "apps.normal". Для XNA Framework: "apps.game"
Author Тип: String. Имя автора проекта.
Description Тип: String. Описание приложения.
Publisher Тип: String. По умолчанию используется имя проекта. Это свойство является обязательным для некоторых типов приложений, которые используют Push-технологии.
HubType Тип: Int. Атрибут, позволяющий выбрать категорию для размещения в хабе Music & Videos. Используется для тестирования перед подачей заявления. Атрибут можно вручную изменить в манифесте. Значение 1 включает эту функциональность.

Обратите внимание на параметр Genre. Когда вы создаете стандартное приложение Windows Phone на Silverlight и устанавливаете его на эмуляторе, то видите, что оно помещается в первый список приложений, который доступен через кнопку со стрелкой на главной странице Home. Если вы используете реальное устройство, то видели, что все игры сосредоточены в хабе Games. Вы можете добиться такого же эффекта. Правда ваше приложение исчезнет из списка приложений на эмуляторе, так как он не имеет данного хаба (В данном случае речь идет о стандартном эмуляторе. Вы можете разблокировать ваш эмулятор, чтобы увидить хаб Games. Подробности описаны в моем блоге). Помните, что эту операцию необходимо применять только к играм. В противном случае магазин приложений просто не примет ваше приложение в MarkePlace. Подробнее

<IconPath></IconPath>

IconPath является дочерним элементом элемента Application и содержит путь к значку, который используется в списке приложений на устройстве. По умолчанию используется картинка AppIconGeneric.png для Silverlight-проектов и GameThumbnail.png для проектов XNA Framework. Все атрибуты только для внутреннего использования и не подлежать редактированию.

<Capabilities></Capabilities>

Capabilities является дочерним элементом элемента Application. Windows Phone обеспечивает управляемую модель безопасности. Некоторые примеры включают в себя использование сетевых услуг, где пользователь понести дополнительные расходы, если программа не предупредила его об использовании роуминга. Основные задачи, заложенные в атрибутах, заключаются в следующем:

  • Обеспечить полноту информации - пользователи должны быть уведомлены, если функциональность приложения создает угрозу безопасности. У пользователей должна быть возможность отказаться от активирования услуги
  • Снижение риска атаки - приложение запускается отдельно от других и не может влиять на работу других программ:

Ниже приводится список возможных значений. У элемента Capabilities есть только один атрибут Name, имеющий тип String.

Capability ID/Name (Type: String) Описание
ID_CAP_NETWORKING Приложение имеет доступ к сетевым услугам, например, роуминг.
ID_CAP_IDENTITY_DEVICE Приложение использует информацию об аппаратных характеристиках устройства: уникальный идентификатор устройства, изготовитель, имя модели
ID_CAP_IDENTITY_USER Приложение использует анонимный LiveID для идентификация пользователя в анонимной режиме
ID_CAP_LOCATION Приложение имеет доступ к локальным службам
ID_CAP_SENSORS Приложение использует сенсоры
ID_CAP_MICROPHONE Приложение использует микрофон. Приложение может записывать без визуальной индикации процесса записи
ID_CAP_MEDIALIB Приложение имеет доступ к мульдимедийной библиотеке
ID_CAP_GAMERSERVICES Приложение может взаимодействовать с Xbox LIVE API
ID_CAP_PHONEDIALER Приложение может осуществлять телефонный звонок.
ID_CAP_PUSH_NOTIFICATION Приложение использует push-уведомления из интернета. Возможен риск при роуминге
ID_CAP_WEBBROWSERCOMPONENT Приложение использует компонент web browser component. Риск безопасности из-за сценариев

При разработке приложения, если вам не нужные описанные возможности, вы можете удалить лишние записи. Но если вы удалите намеренно или по ошибке требуемую возможность, то получите ошибку UnauthorizedAccessException с сообщением Access denied при попытке воспользоваться закрытой функциональностью.

<Tasks></Tasks>

Tasks является дочерним элементом элемента Application. Только для внутренного использования.

Атрибут Описание
Name

Тип: String. По умолчанию используется "_default"

NavigationPage

Тип: String. Это страница навигации, позволяющая перемещаться в приложения при запуске. Используется в Silverlight-проектах. Не используется в XNA Framework. Изменение стартовой страницы может пригодиться при тестировании приложения. Например, вместо того, чтобы при отладке вначале загружать какую-то базовую страницу приложения, а уже потом с помощью навигации переходить на нужную страницу, можно сразу указать отлаживаемую страницу в качестве стартовой, а также передать ей некоторые параметры.

Например, укажем, что вначале будет загружаться страница «CatPage.xaml»:


<Tasks>
<DefaultTask Name ="_default" NavigationPage="CatPage.xaml?id=12"/>
</Tasks>

<Tokens></Tokens>

Tokens является дочерним элементом элемента Application. Каждое приложение ассоциирована с определенной плиткой (Tile), которую пользователь может закрепить в области быстрого запуска.

<Primary Token ></Primary Token >

Элемент Primary Token описывает плитку, ассоциированную с приложением. Является дочерним элементом элемента Tokens.

Атрибут Описание
Token ID Тип: String. Название плитки. По умолчанию используется "Default"
TaskName

Тип: String. Имя задачи, которую выполняет плитка при нажатии

< TemplateType5></ TemplateType5>

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

  • BackgroundImageURI
  • Count
  • Title

< BackgroundImageURI></ BackgroundImageURI>

По умолчанию для изображения на плитке используется картинка ApplicationIcon.png (Silverlight) или GameThumbnail.png (XNA Framework)

<Count></Count>

Тип: Int. Плитка может содержать элементы счетчика с числами от 0 до 99. Если значение равно 0, то оно не выводится на плитку.

<Title></Title>

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

Для настроек, относящихся к плитке, нет необходимости править записи в файле. Вы можете это сделать через окно настроек в Visual Studio, как это описано в статье Меняем плитку для приложения Windows Phone 7.

Реклама