Как сделать приложение для windows phone. Разработка первого приложения для Windows Phone: Подготовка рабочего окружения. Навигация между страницами приложения
Последнее обновление: 31.10.2015
Windows Phone на сегодняшний день является одной из трех наиболее популярных ОС для смартфонов, в связи с чем возникает необходимость в приложениях различного рода для этой операционной системы. И хотя пока Windows Phone по популярности сильно уступает системам Android или iOS, в то же время количество устройств под управлением данной ОС растет в абсолютном выражении, что так или иначе рождает потребность в приложениях. Кроме того, есть сферы, где Windows Phone может составить конкуренцию другим системам, например, приложения для бизнеса.
Рассмотрим, что же нам потребуется для создания приложений для Windows Phone 8.1. А нам потребуется среда разработки Visual Studio Express 2013 for Windows c пакетом обновления не ниже SP2 (так как пакеты обновления от SP2 и выше по умолчанию содержат Windows Phone SDK 8.1). Также вместо экспресс-версии мы можем использовать другой более функциональный выпуск Visual Studio, например, Visual Studio Community , Professional или Ultimate .
В плане функционала для разработки для WP8.1 эти выпуски несильно отличаются, и в дальнейшем для всех примеров я буду использовать Visual Studio Express 2013 for Windows.
Кроме самой разработки нам также потребуются средства тестирования. Visual Studio по умолчанию предоставляет эмуляторы смартфонов, которые можно использовать для тестирования. Однако для подключения эмуляторов нам надо включить в BIOS режим виртуализации, затем в Windows необходимо включить Hyper-V, который имеет ряд ограничений. В частности, режим Hyper-V доступен только для 64-битных версий Windows 8 Pro и Windows 8 Enterprise. И если вашей ОС является Windows 8 Basic или Windows RT, то Hyper-V вы не сможете использовать.
Кроме того, мы можем естественно использовать смартфон с OS Windows Phone 8.1. Хотя эмуляторы очень удобны: они предоставляют различный спектр устройств с различными настройками, но полную достоверную картину дает тестирование на реальных устройствах. Поэтому в дальнейшем я буду в качестве устройства использовать именно смартфон.
Прежде чем использовать смартфон, нам предстоит выполнить небольшую процедуру по регистрации смартфона для разработки.
Регистрация телефона
Чтобы зарегистрировать телефон, надо использовать утилиту , которая идет в комплекте Windows Phone SDK 8.1.
Для регистрации телефона выполним ряд шагов:
После успешной установки необходимого инструментария создадим первое приложение.
С момента запуска платформы в 2011 году и до июня 2013 стоимость годовой подписки на аккаунт разработчика составляла 99 долларов. Microsoft попыталась привлечь как можно больше разработчиков к своей платформе и на все лето этого года снизила «сбор» до 19 долларов. Затем компания бессрочно продлила действие акции и запустила проект Windows Phone App Studio с бесплатной регистрацией разработчиков.
Аккаунт разработчика — полезная штука. С его помощью можно отправлять в магазин Windows Phone приложения и игры, написанные в Visual Studio или созданные в веб-сервисе Windows Phone App Studio. Даже если ваше приложение не пройдет сертификацию, будет отвергнуто и не попадет в коммерческий доступ, вы сможете использовать его на своем устройстве и показывать «эксклюзив» друзьям. Кроме этого, девелоперский аккаунт позволяет своему владельцу получать обновления операционной системы раньше обычных пользователей. Никто никаких приложений от вас требовать не будет, и аккаунт сохранится, даже если вы не станете использовать его для разработки.
Windows Phone App Studio - веб-инструмент для создания простых приложений или макетов сложных проектов. За те несколько месяцев, что прошли с момента его запуска, в нем было создано более 150 тысяч проектов, из которых 65 тысяч стали полноценными приложениями и были установлены на смартфоны.
Для получения бесплатного аккаунт разработчика нужно пройти процесс регистрации в Windows Phone App Studio. Зайдите на страницу сервиса и введите логин и пароль аккаунта Microsoft. Теперь вы официально - разработчик приложений для Windows Phone.
В App Studio содержатся шаблоны девятнадцати категорий, можно выбрать любой и на его основе создать уникальное приложение. Для этого нужно выбрать локализацию, добавить картинку живой плитки, описание, контент (фотографии, видео, RSS-потоки), выбрать цветовую схему оформления интерфейса и фоновое изображение.
Готовое приложение можно сразу установить на смартфон, для этого нужно нажать кнопку «Generate». Вам будет отправлено письмо с двумя ссылками, сначала нужно установить сертификат, затем ваше приложение. После установки оно появится в общем списке, им уже можно пользоваться. В дальнейшем приложение можно редактировать в App Studio и снова отправлять на телефон.
App Studio также позволяет экспортировать исходный код приложения в проект, который можно открыть и редактировать в Visual Studio, более серьезном инструменте разработчиков. Есть и подводный камень - когда вы решитесь отправить свое приложение в магазин Windows Phone, вам потребуется оформить подписку на платный аккаунт разработчика.
Если вы собираетесь использовать аккаунт разработчика только для установки обновлений Windows Phone раньше, чем они выходят официально, установите на смартфон приложение Preview for Developers , залогиньтесь в нем в аккаунт разработчика и согласитесь с условиями. Обновления устанавливаются не автоматически, их наличие нужно проверять в настройках. Если вы услышали, что кто-то начал получать апдейт, зайдите в настройки телефона и посмотрите, доступен ли он вам.
Последнее обновление: 31.10.2015
Запустим Visual Studio Express 2013 for Windows. В меню выберем File->New Project.. . Перед нами откроется окно создания проекта:
В левой части окна выберем Visual C#->Store Apps-> Windows Phone Apps . А среди шаблонов нового проекта выберем Blank App (Windows Phone) , дадим какое-нибудь название проекту, например, назовем его HelloApp. И нажмем ОК.
И Visual Studio создаст новый проект:
Проект по шаблону Blank App по умолчанию имеет следующие узлы:
Каталог Assets , содержащий используемые файлы изображений
App.xaml и App.xaml.cs - файл ресурсов приложения на xaml и файл кода приложения на c# соответственно
MainPage.xaml и MainPage.xaml.cs - файл графического интерфейса окна приложения и файл кода окна на c# соответственно
Package.appxmanifest - файл манифеста приложения
На данном начальном этапе пока для нас ценность представляют файлы MainPage.xaml и MainPage.xaml.cs . Откроем файл MainPage.xaml, который представляет графический интерфейс:
Слева в виде телефона у нас будет окно графического дизайнера. Справа - окно разметки графического интерфейса на языке xaml. Графический интерфейс в данном случае представлен классом MainPage, который представляет собой отдельную страницу. Все изменения по интерфейсу, которые мы сделаем, тут же будут отображаться в графическом дизайнере, который даст нам визуальное понимание того, как в итоге будет все выглядеть.
Допустим, наше приложение будет считать сумму вклада после начисления процентов. Для этого нам нужно поле ввода суммы вклада, поле для вывода результата и кнопку, с помощью которой мы будем инициировать вычисления итоговой суммы. Итак, изменим код файла MainPage.xaml следующим образом:
С помощью атрибутов элементов мы задаем их внешний вид и позиционирование. Например, с помощью атрибута Margin задаются отступы от внешнего края. Более подробно об атрибутах и прочих элементах языка xaml мы поговорим в дальнейшем.
После добавления элементов и их атрибутов у нас автоматически обновится и окно дизайнера:
Теперь изменим код кнопки следующим образом:
С помощью выражения Click="button1_Click" мы добавили обработчик события Click. Таким образом, по нажатию кнопки будет срабатывать метод button1_Click . Теперь определим этот метод.
Откроем файл MainPage.xaml.cs , который содержит логику страницы. По умолчанию он имеет следующий код:
Using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; namespace HelloApp { public sealed partial class MainPage: Page { public MainPage() { this.InitializeComponent(); this.NavigationCacheMode = NavigationCacheMode.Required; } protected override void OnNavigatedTo(NavigationEventArgs e) { } } }
В класс MainPage добавим новый метод:
Private void button1_Click(object sender, RoutedEventArgs e) { double capital; if(Double.TryParse(textBox1.Text,out capital)) { capital+=capital * 0.12; textBlock1.Text = capital.ToString() + " долларов"; } else { textBlock1.Text="Некорректное значение"; } }
В методе мы получаем введенное в текстовое поле значение и пытаемся его преобразовать к типу double. Если преобразование пройдет успешно, то выводим результат несложных вычислений.
Запустим на выполнение:
При запуске мы можем выбрать, где мы будем тестировать приложение - на реальном устройстве или эмуляторе. В моем случае я запускаю приложение на реальном смартфоне, поэтому в выпадающем списке выбираю Device . Однако можно выбрать и один из эмуляторов, если они уже установлены.
При запуске приложения на смартфоне важно, чтобы смартфон не находился в состоянии блокировки. Итак, запустим:
Введем в текстовое поле какое-нибудь число и нажмем на кнопку:
При тестировании через смартфон важно помнить, что при запуске приложение автоматически устанавливается на телефон, и мы можем его найти в списке всех приложений:
И при необходимости потом, отключившись от компьютера, также сможем его запустить, либо удалить.
На этом создание первого приложения завершено.
Телефоны на Windows 10 Mobile появились с существенной задержкой относительно Android и iOS, пообещав за потерянное время лучшие возможности. Обещание оказалось пустым, а ведь это был ключевой момент в развитии Windows, как универсальной системы для всех устройств. Более того, приложения в Windows 10 остаются настолько инородными, что даже спустя столько лет существования Microsoft Store остаётся в разы беднее App Store и Google Play.
Тем не менее, говорить о том, что умение разрабатывать приложения для Windows 10 бесполезно – преждевременно. Во-первых, у Microsoft есть желание в 2017-2018 году запустить серию мобильных телефонов под линейкой Surface, рассчитанную на бизнес-аудиторию, то есть занять нишу, освобождённую после ухода с рынка BlackBerry.
Во-вторых, даже с учётом неизменного падения рынка смартфонов на WM, на компьютерах Windows по-прежнему доминирует, да и HoloLens обещает подогреть интерес. В-третьих, полупустой, но всё же общий магазин приложений предполагает куда большие возможности по привлечению аудитории.
В общем, пускай разработчики приложений для Android и iOS будут сегодня чуть больше востребованы, зато у их коллег, работающих на благо Windows, есть возможность стать настоящим мессией, которая спасёт всю платформу. И вот краткий путеводитель по тому, что как минимум для этого надо изучить.
Знакомство
Первым делом поближе познакомьтесь со универсальной платформой для приложений, которая с этого места будет носить своё официальное название – Universal Windows Platform или просто UWP. Появилась она ещё во времена Windows 8, а сегодня обросла всеми необходимыми удобствами. Концепция хоть и носит лозунг «одно приложение для всех устройств», но для хорошего приложения ориентироваться на отдельный тип всё-таки придётся. В общем, все возможности и ограничения UWP вы узнаете если прочитаете официальный релиз от Microsoft:
Язык
В информационном листе Microsoft вы можете найти следующую фразу: «Вы можете создавать приложения UWP на тех языках программирования, с которыми вы знакомы лучше всего…». Фактически, это не совсем так. Вам на выбор предлагаются 4 из них: C# , Visual Basic , C++ и JavaScript . Безусловно, это лучше, чем строгое ограничение, но универсальностью это назвать затруднительно.
Кстати, справочники по всем четырём языкам можно найти непосредственно на сайте Microsoft или просто нажав на предоставленные ссылки. Также на нашем сайте вы можете пройти бесплатный .
Программное обеспечение
Главное детище Microsoft, ориентированное на разработчиков приложений для всевозможных платформ – Visual Studio. Скачать его можно также с официального сайта , выбрав подходящую версию. Как с ним работать, какие в вашем распоряжении могут быть инструменты, а главное куда надо нажимать, вы узнаете из руководства . Обязательным для скачивания будет и пакет SDK . На этой же странице вы найдёте всю интересующую информацию по работе с ним.
Есть и альтернативный вариант создания приложения для Windows 10 для тех, кому окунаться в мир Visual Studio немного рано. Знакомьтесь, Windows App Studio . Фактически, это конструктор приложения с набором шаблонов, который поможет быстро визуализировать вашу идею.
Оформление
Как и положено уважаемой компании, Microsoft выпустил для своих разработчиков достаточно подробное руководство по оформлению приложений UWP. Здесь вы найдёте ответы на все интересующие вопросы: от типовых размеров экрана до описания командных элементов, от стандартных цветов до шаблонов Adobe Photoshop и Illustrator.
Разработка приложения
Здесь же вы найдёте информацию относительно того, как повысить популярность и производительность приложения, как выводить деньги, какие условия сотрудничества с Microsoft и так далее.
Литература
В конце перечислим несколько популярных книг и ресурсов, которые помогут создать идеальное приложение для Windows:
Windows 10 Development for Absolute Beginners – как понятно из названия, эта книга посвящена желающим создать своё первое приложение именно на Windows 10;
Building Windows 10 Applications with XAML and C# Unleashed (2nd Edition) , Adam Nathan – и вновь название книги красноречиво отражает её содержание;
Real World Windows 10 Development , Edward Moemeka, Elizabeth Moemeka – полноценный гид по разработке приложения для Windows 10, начинающийся с обзора самой ОС, её преимуществ и недостатков, и завершающийся верификацией и выгрузкой созданного вами объекта;
Location Intelligence for Windows Store apps , Ricky Brundritt – подробное руководство по разработке приложений для Windows. Посвящена 8 части ОС, поэтому периодически необходимо сверяться с официальной документацией, что ничуть не снижает ценности данной литературы;
– в книге довольно обще описается жизненный цикл Windows-приложения и куда подробнее – сторонних функций и инструментов;
Форум разработчиков Windows – задать вопросы и обсудить насущные проблемы разработки;
A Developer"s Guide to Windows 10 – часовой видеоурок, который поможет разобраться во всех тонкостях;
В диалоге New Project Visual Studio выберем Visual C#, Silverlight for Windows Phone и простой шаблон приложения Windows Phone Application и назовём его ExploringXAMLFeatures.
В диалоге выбора целевой операционной системы выберем Windows Phone OS 7.1
После создания проекта, окно Visual Studio примет следующий вид
Рассмотрим структуру проекта в окне Solution Explorer:
Название файла | Назначение |
AppManifest.xml | Файл манифеста, необходимый для генерации XAP файла, в который упаковывается приложение для развёртывания на телефоне. |
AssemblyInfo.cs | Ещё один конфигурационный файл, в котором определяются некоторые метаданные главной сборки(Assembly) приложения. |
WMAppManifest.xml | Файл метаданных, который содержит разнообразные настройки приложения: заголовок, задание первой страницы, пути к иконкам, определение необходимых системных возможностей и.т.д. |
App.xaml | Это файл ресурсов приложения. Здесь располагаются глобальные ресурсы (это будет рассмотрено при использовании стилей) или глобальные события (происходящие при старте приложения). Этот файл также является точкой входа приложения. |
App.xaml.cs | Файл кода (code-behind) для App.xaml. Здесь можно обрабатывать события и ошибки уровня приложения, в том числе его tombstoning. Данную концепция будет рассмотрена позднее, когда будет рассматриваться многозадачность. |
ApplicationIcon.png | Картинка, которая будет иконкой приложения в телефоне. Это действительно важный файл, так как он является первым, что увидят пользователи при работе с приложением. |
Background.png | Данная картинка используется, когда приложение закреплено на стартовом экране телефона(start screen). По сути это большая иконка приложения. Разумно сделать её визуально похожей на ApplicationIcon.png. |
MainPage.xaml | Это часть выбранного шаблона приложения. Название MainPaige не очень удачное, но именно оно используется шаблоном проекта по умолчанию. Этот страница представляет интерфейс, который видит пользователь при старте приложения. |
MainPage.xaml.cs | Файл кода страницы MainPage.xaml. |
SplashScreenImage.jpg | Данная картинка отображается во время загрузки +приложения. Можно задать свою картинку с анимацией, чтобы проинформировать, что приложение загружается. Есть техника создания очень динамичных страниц загрузки на XNA, но она выходит далеко за рамки этого цикла статей. |
Файлы XAML определяют интерфейс приложения. На самом деле - это просто XML файлы с языком разметки XAML.
Несмотря, что это самый простой проект, он содержит все ключевые элементы, которые содержат все остальные шаблоны и типы проектов.
Обратите внимание, что часть настроек, представленных в виде конфигурационных файлов, могут редактироваться в визуальном интерфейсе редактирования настроек приложения.
Добавление элементов управления на страницу XAML
Обратите внимание, что Visual Studio по умолчанию отображает и дизайн, и XAML код страницы.
Если вы переходили к просмотру других файлов решения, двойным щелчком перейдите на файл MainPage.xaml.
В XAML код файла MainPage.xaml внутрь элеметна Grid с именем ContentPanel вставьте элемент управления Button:
В окне дизайна кнопка отобразится сразу приблизительно в центре интерфейса. Обратили внимание на атрибут Name ? Это уникальный идентификатор элемента, который помогает ссылаться на него в коде. Считайте это ID атрибутом элемента управления. Давайте теперь добавим какие-нибудь действия при нажатии на эту кнопку. Есть два способа привязать событие к кнопке Button (или любому другому элементу управления). В XAML, прямо в определении Button, можно добавить атрибут Click и система InteliSense автоматически спросит, хотим ли мы сгенерировать новый обработчик событий:
Можно связать обработчик событий напрямую в коде страницы Home.xaml.cs не указывая его в XAML файле:
Public MainPage() { InitializeComponent(); MyButton.Click +=new RoutedEventHandler(MyButton_Click); }
Оба способа работают. Можете использовать любой из них. Для упрощения здесь будет использоваться определение метода в XAML. Теперь в функции MyButton_Click можно написать управляемый код, который будет изменять интерфейс или вызывать другие функции. Завершим наш пример приложения, добавив код, который будет изменять текст в TextBlock PageTitle (PageTitle – это Name, так что можно ссылаться на неё напрямую в коде) на «привет wp7». Чтобы сделать это допишем следующий код в функцию:
Private void MyButton_Click(object sender, RoutedEventArgs e) { PageTitle.Text = "привет wp7"; }
Выберем в настройках проекта Windows Device Emulator
И запустим приложение, нажав на зеленый треугольник или копку F5. После запуска приложения и нажатия на кнопку «Нажми меня», вид экрана должен быть аналогичным снимку экрана ниже:
Добавление новых страниц в проект
Только самое простое приложение состоит из одной страницы. Мы хотим научиться писать сложные многостраничные приложения. Мы можем использовать шаблоны Pivot, Panorama, можем использовать паттерн проектирования MVVM (Model-View-ViewModel), а сначала научимся добавлять новые страницы в проект и переходить между ними.
В окне Solution Explorer щелкнем правой кнопкой мыши по названия проекта, и в отобразившемся меню выберем, Add, далее New Item, в открывшемся диалоговом окне выберем Windows Phone Portrait Page и назовем её SecondPage.xaml:
Теперь у нас есть пустая XAML страница, точная копия страницы MainPage.xaml до того, как мы её отредактировали.
Чтобы лучше различать страницы, перейдем к XAML коду страницы SecondPage и у элемента TextBlock с Name PageTitle отредактируем свойство Text, как показано ниже:
Навигация между страницами приложения
Итак, у нас в проекте есть две страницы, при запуске приложения отображается страница MainPage.xaml. Как теперь перейти со страницы MainPage.xaml на SecondPage.xaml?
Попробуем два простых способа, как это сделать.
В XAML код файла MainPage.xaml после добавленного ранее кода Button, добавим код HyperlinkButton, как показано ниже:
Элемент управления HyperlinkButton имеет специальноe свойство NavigateUri, которое позволяет указать Uri для перехода. Добавим это свойство со значением /SecondPage.xaml, как показано ниже:
Запустим приложение (F5).
Когда отобразится интерфейс приложения, если мы нажмём ссылку Вторая страница, то произойдет переход на вторую, ранее созданную страницу SecondPage.xaml. Если после этого нажать на аппаратную кнопку Back, то мы вернёмся на основную (предыдущую) страницу – по умолчанию эта кнопка позволяет перейти на предыдущую активную страницу.
Теперь воспользуемся возможностью программного перехода. Сначала добавим в секцию using следующий код:
Private void MyButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative)); }
Запустите приложение (F5) и убедитесь, что кнопка работает также как и ссылка.
Добавим на вторую страницу (SecondPage.xaml) элементы управления и код, который бы позволял вернуться на предыдущую страницу.
В XAML код файла SecondPage.xaml внутрь элеметна Grid с именем ContentPanel вставьте элементы управления Button и HyperlinkButton, как показано ниже:
Для создания обработчика события Click кнопки MyButton на странице SecondPage кликните правой кнопкой мыши по тексту MyButton_Click в XAML редакторе и выберите Navigae to Event Handler.
Запустите приложение (F5) и убедитесь, что ссылка «Первая страница» на второй странице возвращает приложение на MainPage.
Теперь воспользуемся возможностью программного перехода. В коде страницы SecondPage.xaml.cs добавим в секцию using следующий код:
Using System.Windows.Navigation;
А затем, заменим код обработчика MyButton_Click на следующий:
Private void MyButton_Click(object sender, RoutedEventArgs e) { NavigationService.GoBack(); }
Запустите приложение (F5) и убедитесь, что кнопка Обратно на второй странице возвращает приложение на MainPage.
Обратите внимание, что в коде, который запускается по нажатию кнопки мы не использовали название страницы, на которую нам необходимо перейти, а попросили сервис навигации, представленный классом NavigationService перейти на страницу, которая была в стеке переходов перед текущей.
События перехода с/на страницы могут быть обработаны програмно, например, чтобы уточнить у пользователя, действительно ли он хочет уйти с текущей страницы.
Добавьте следующий код в файл SecondPage.xaml.cs сразу после обработчика MyButton_Click:
Protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) { base.OnNavigatingFrom(e); // Если можно отменить переход, уточним у пользователя, хочет ли он остаться на текущей странице if (e.IsCancelable) { MessageBoxResult result = MessageBox.Show("Может быть останетесь?", "Подтверждение перехода", MessageBoxButton.OKCancel); if (result == MessageBoxResult.OK) { // Пользователь решил остаться e.Cancel = true; return; } } }
Код достаточно простой, чтобы вы с ним могли разобраться самостоятельно.
Запустите приложение (F5) и обратите внимание, что уточняющий диалог отображается вне зависимости от того, собираемся вы вернуться на MainPage нажатием на кнопку или по ссылке.
Теперь осталось научиться передавать между страницами параметры.
Двойным щелчком по MainPage.xaml перейдём к редактированию основной страницы. В коде MainPage.xaml добавим элемент управления TextBox, выше элемента Button, как показано ниже:
Двойным щелчком по SecondPage.xaml перейдём к редактированию основной страницы. В коде SecondPage.xaml добавим элемент управления TextBox, выше элемента Button, также как на странице MainPage:
Теперь, в обработчик события MyButton_Click страницы MainPage добавим параметры в Uri перехода на вторую страницу по кнопке:
Private void MyButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new Uri("/SecondPage.xaml?text="+Uri.EscapeDataString(MyTextBox.Text), UriKind.Relative)); }
И, наконец, в код страницы SecondPage.xaml.cs, сразу же после обработчика OnNavigatedFrom, добавим обработчик прихода на страницу OnNavigatedTo и в нем обработаем приходящий параметр и выведем его в MyTextBox:
Protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); if (NavigationContext.QueryString.ContainsKey("text")) { MyTextBox.Text = NavigationContext.QueryString["text"].ToString(); } }
Запустите приложение (F5) и проверьте, как оно работает, например, при переходе по ссылке со страницы MainPage на SecondPage.
Итоги и следующие шаги
Итак, мы разобрались с тем, что надо установить для разработки под Windows Phone 7, познакомились с доступными шаблонами и научились создавать новое приложение из шаблона. Также мы научились добавлять элементы управления, прямо в XAML код, добавлять в проект новые страницы и организовывать между ними переход по ссылке и в коде с возможностью передачи параметров.
На следующем шаге мы познакомимся с некоторыми вариантами разметки, доступными в Silverlight, рассмотрим основные элементы управления, а также узнаем, что такое контекст ввода для текстовых полей.