Сегодня поговорим о контролах, которые отвечают за группирование и расположение других контролов. К ним относятся Canvas, Grid, StackPanel. У каждого есть свои индивидуальные особенности. Соответственно мы используем каждый из них в конкретной ситуации. Контейнеры позволяет нам создавать некую структуру расположения элементов на нашей форме. Сочетания контейнеров и вложение их один в другой позволяет нам добиться определенного взаиморасположения и разбиения формы на определенные логические блоки. Ну и конечно без использования контейнеров мы не сможем расположить не один дочерний контрол.
На этом уроке мы продолжим рассказ о работе с видео. Сегодня мы попробуем создать простейший МедиаПлеер, который позволит нам проиграть видео (аудио файл). В нашем примере мы будем использовать видео файлы. Сразу скажу, что урок требует минимального знания C#, большинство моментов я объясню, за разъяснением синтаксиса языка, обращайтесь к соответствующим источникам и справочным средствам.
Продолжаем знакомство с возможностями MediaEllement, сейчас мы попробуем создать простую анимацию с использованием видео, на основе, которой в будущем вы сможете создать любую другую подобную анимацию, как перемещения, трансформация, поворот и сочетание, всех анимаций одновременно.
Сегодня разговор пойдет о видео файлах и работе с ними. Silverlight имеет очень широкие возможности создания простых видео плееров, и интересных интерактивных эффектов с использованием видео. После появления Silverlight стало возможным отображать высококачественное потоковое видео, чем в то время не мог похвастаться Flash, но с приходом Flash 9 ситуация выровнялась. Но так ли это на самом деле давайте посмотрим.
И так приступим, к созданию простого приложения, которое будет отображать наше видео. Чтобы создать такое приложение вам необходимо использовать Blend Studio, а также необходимо, чтобы был установлен видео плеер Windows Media Player не ниже 10 версии, иначе Blend Studio не даст вам создавать видео (MediaElement будет выдавать соответствующее предупреждение), к сожалению, в данный момент MediaElement поддерживает только три видео формата wmv, asx, asf и два аудио mp3, wma. Думаю в будущем будет обеспечен более богатый набор видео форматов. Но пока Blend Studio при попытке использовать не соответствующий формат, и даже иногда с некоторыми файлами *.wmv вылетает с Exception – ом, думаю этот баг они тоже исправят в будущих версиях. Ну пока посмотрим как все это работает.
Темплейт – это заранее подготовленный шаблон, определяющий общий вид объекта, который можно применить к множеству объектов, что позволяет достичь гибкости и быстроты управлением внешним видом объектов, чего иногда не позволяет сделать стили.
Стили имеют ограниченные возможности изменения внешнего вида объекта, если хотите полностью изменить внешний вид объекта без применения методы и событий объектов, вам необходимо использовать темплейты.
Для того, чтобы начать создавать свои собственные приложения на Silverlight. Вам необходимо для начала запастись необходимыми программными средствами.
1) Для 1.0:
Для 2.0:
Установка плагина Silverlight ни чем не отличается, от обычных windows приложений, только в конце они забыли добавить кнопку «finish», что немного сбивает с толку и приходиться закрывать обычным крестиком.
Как оказалось на практике, проверь не просто просто, а совсем просто :))
Чтобы проверить наличие Silverlight на стороне клиента, достаточно проверить переменную Silverlight.available. True – установлен, False – нет. Это свойство легко найти в файле Silverlight.js
Также можно проверить версию брайзера -Silverlight.ua.Browser, которое возвращает одно из следующих значений: ‘MSIE’, ‘Firefox’, ‘Safari’ or ‘Unsupported’.
Операционную систему можно проверить следующим свойством – Silverlight.ua.OS – возвращающим ‘Windows’, ‘MacPPC’, ‘MacIntel’, ‘Unsupported’.
Сегодня мы с вами рассмотрим взаимодействие SilverLight и JavaScript. Рассмотрим это на простом примере, мы создадим просто текстовое поле и текстовый блок. При нажатии будет вызываться функция JavaScript и выскакивать сообщение, что мы в данный момент нажали.
Итак заходим сново уже в привычный для нас интерфейс Expression Blend, создаем новый проект. Затем создаем текстовый блок и прямоугольник ввиде окантовки к нашему тексту… В итоге xaml должен выглядеть следующим образом:
Ну вот и пришло время практики.. Сегодня мы немного потренируемся и попробуем сотворить чего Silverlight-оского ;)
Начало статьи тут….
Итак начнемс, вы уже должны были скачать и установить Expression Blend, если Вы этого не сделали, то смотрим тут, что и как необходима скачать и установить.
Запускаем Microsoft Expression Blend, кликаем New Project, и конечно выбираем SilverLight Application, указав папку в которой будут храниться исходники.
Выберите ОК, и новый проект будет создан.
Структура вполне стандартная, и думаю кто работал с различными графическими редакторами, как Flash, разобраться будет не сложно. Единственное в верхнем углу расположено меню доступа к основным файлам проекта.
Т.е. проект содержит по умолчанию HTML страницу, код JavaScript содержащейся на этой странице, XAML документ. Silverlight.js содержит код загрузки и иллустрирует пример управления SilverLight. Он представлен как часть Silverlight SDK. Default.html – стандартная Web страница. Она содержит три ссылки на JavaScript, указывающие на Silverlight.js, Default.html.js , и Scene.xaml.js (который содержит обработчик событий определенных в XAML).
Итак мы займемся с вами созданием UI для Video Player.
Добавьте любой видео файл к вашему проекту. Чтобы сделать это, щелкните правой кнопкой мышки на Project Files в верху экрана, и выберите Add Existing Item… Выбираем любой видеофайл (Добавляем WMF и версия Microsoft Windows Player должна быть не ниже 10) и нажимаем ОК
Файл появится в Project Explorer, и, Медиа элемент будет добавлен на главную страницу. Вы можете теперь просмотреть ваш проект в браузере, который воспроизведет ваше видео! Также можно остановить автоматическое воспроизведение видео, редактируя XAML. Выберите XAML (из двух:Design&XAML) таблицу, откроется окно редактирования XAML. Просто нужно лишь отредактировать тег MediaElement, и установите атрибут AutoPlay=False.
Запускаем – смотрим, все работает!
Добавьте два текстовых блока на поле с текстом и соответственно Stop и назовите их Play_txt и Stop_txt, после этого ваш XAML файл дожен выглядеть следующим образом (что самое удобное, ошибки видны сразу на панели Errors).
Затем добавьте описание обработчика событий для блоков текста в XAML. Для этого используется свойство MouseLeftButtonDown (интуитивно понятно, что действует по нажатию левой клавиши мыши).
Итак для Play_txt добавляем действие DoPlay, для Stop_txt – DoStop, и соответственно участок с текстом в XAML выглядет следующим образом:
Теперь когда пользаватель щелкнет мышкой по одному из текстовых блоков, мы сможем обработать это событие при помощи JavaScript. Обработка Событий в JavaScript записывается здесь Page.xaml.js.
Так как мы определили функции по нажатию, как DoPlay и DoStop, запишим их соответсвенно в Page.xaml.js. Код должен выгдедеть следующим образом:
function DoPlay(sender, eventArgs)
{
var theHost = document.getElementById("SilverlightControl");
var theMedia = theHost.content.findName("YouRoll_wmv");
theMedia.Play();
}
function DoStop(sender, eventArgs)
{
var theHost = document.getElementById("SilverlightControl");
var theMedia = theHost.content.findName("YouRoll_wmv");
theMedia.Stop();
}
Все можем тестировать. Нажимаем на текстовый блок – ролик начинает проигрываться, нажимаем на Stop – останавливается. Поздравляю мы сделали первый проект при помощи Silverlight!!!
Вот небольшая инструкция как поставить среду разработки для приложений SilverLight.
Так как нам пока необходимы только основы работы с SilverLight, то достаточно будет поставить:
1) , после того как он распакуется, установите его в online режиме.
2) после установки .NET Framework 3.0, скачайте и установите , весит данный архив около 25Мб.
Все можно приступить к работе….