УДК 004.4
ББК 32.973.26-018.2
Б91
Б91
Буньон, Лоран.
Silverlight 2 / Л. Буньон ; пер. с англ. А. А. Слинкина. — 2-е изд., эл. — 1 файл
pdf : 529 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader
XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный.
ISBN 978-5-89818-474-2
Silverlight — новая революционная технология разработки пользовательских веб-интерфейсов,
созданная корпорацией Майкрософт на основе Windows Presentation
Foundation (WPF). В приложениях Silverlight используется язык разметки XAML при
поддержке таких инструментов, как Expression Design и Expression Blend. Это дает возможность
реализовывать поразительные эффекты (градиенты, композиции, анимации).
Помимо богатого набора элементов управления, Silverlight 2 позволяет использовать не
только язык JavaScript, но также C# и VB.
Silverlight предоставляет вам всю мощь .NET на различных платформах (Internet
Eхplorer и Firefox для Windows, Firefox и Safari для Macintosh и Firefox для Linux). Автор
на многочисленных примерах помогает очень быстро овладеть основами этой современной
технологии.
УДК 004.4
ББК 32.973.26-018.2
Электронное издание на основе печатного издания: Silverlight 2 / Л. Буньон ; пер. с англ. А. А. Слинкина.
— Москва : ДМК Пресс, 2009. — 528 с. — ISBN 978-5-94074-550-1. — Текст : непосредственный.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и
какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок
все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых
сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием
книги.
В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты
авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.
ISBN 978-5-89818-474-2
© Перевод на русский язык, оформление,
издание, ДМК Пресс, 2009
Стр.5
Содержание
Предисловие .......................................................................................... 19
Об авторе.................................................................................................. 20
Посвящение ............................................................................................ 21
Благодарности ....................................................................................... 22
В помощь читателям .................................................................................. 23
Введение .................................................................................................. 24
О примерах кода ........................................................................................ 25
Старше на год ............................................................................................ 25
Глава 1. Введение в Silverlight ........................................................ 26
Истоки технологии Silverlight ...................................................................... 27
Автоматизация вебстраниц с помощью языка JavaScript..................... 27
Каскадные таблицы стилей ................................................................... 28
Переход к DHTML .................................................................................. 29
AJAX – более развитый способ коммуникации ...................................... 29
Использование сторонних надстроек ........................................................ 30
Javaапплеты ........................................................................................ 30
Элементы управления ActiveX ............................................................... 31
Flashприложения ................................................................................. 31
Работа на разных платформах ................................................................... 32
Вебприложения и безопасность ............................................................... 33
Знакомство с Silverlight.net ........................................................................ 34
Что необходимо для запуска Silverlight? ..................................................... 34
Автоматическое обновление среды исполнения ........................................ 35
Познакомимся с демонстрационными приложениями Silverlight ............... 36
Поиграем в шахматы против Silverlight .................................................. 36
Планирование путешествия с помощью приложения Airline .................. 37
Панорамирование хардроккафе......................................................... 38
Где найти дополнительные демонстрации ............................................ 39
Что необходимо для разработки приложений Silverlight? ........................... 39
Expression Studio ................................................................................... 40
Visual Studio 2008 .................................................................................. 40
Стр.6
6
Содержание
Чтение документации ................................................................................ 41
Просмотр онлайновой документации.................................................... 41
Поиск дополнительной документации................................................... 41
Учебные пособия .................................................................................. 42
Заглянем в будущее Silverlight ................................................................... 42
Считать ли ASP.NET/HTML/JavaScript покойниками? ............................. 43
Резюме ...................................................................................................... 43
Глава 2. Знакомство с XAML............................................................ 44
Использование XML для представления данных ........................................ 44
XML и пользовательские интерфейсы ........................................................ 45
Пространства имен в XML .......................................................................... 46
Определение дополнительных пространств имен ..................................... 47
Создание элемента Canvas с дочерними элементами ............................... 48
Присоединенные свойства: Canvas.Left и Canvas.Top ................................ 49
Документирование разметки с помощью XMLкомментариев ................... 49
Тестирование XAMLразметки ................................................................... 50
Использование SilverlightPad ................................................................ 50
Использование KaXaml ......................................................................... 51
Задание свойств в XAML ............................................................................ 52
Изменение кисти ....................................................................................... 54
Описание сцен в XAML ............................................................................... 55
Меньше вводить, экономить место ............................................................ 57
Резюме ...................................................................................................... 57
Глава 3. Трансформации и анимации в XAML......................... 59
Трансформация визуальных элементов ..................................................... 59
Типы трансформаций................................................................................. 61
Трансформация RotateTransform ........................................................... 61
Трансформация TranslateTransform ....................................................... 61
Трансформация ScaleTransform ............................................................ 62
Трансформация SkewTransform............................................................. 63
Трансформация MatrixTransform ........................................................... 64
Композиция трансформаций ..................................................................... 65
Создание простой анимации ..................................................................... 66
Составные элементы анимации ................................................................. 68
Добавление анимации масштабированием ............................................... 69
Использование других типов анимаций ..................................................... 70
Навигация по пути к свойству................................................................ 71
Развертывание сцены на вебстранице ..................................................... 72
Резюме ...................................................................................................... 72
Глава 4. Самовыражение с помощью Expression Blend ..... 73
Коротко об Expression Studio ...................................................................... 73
Установка Expression Blend ........................................................................ 73
Стр.7
Содержание
7
Запуск Expression Blend ............................................................................. 74
Опции настройки ....................................................................................... 74
Создание нового проекта .......................................................................... 76
Панели ....................................................................................................... 76
Знакомство с файлами .............................................................................. 77
Исполнение в веббраузере....................................................................... 78
Работа с формами ..................................................................................... 79
Панель свойств .......................................................................................... 80
Элемент Color Picker .................................................................................. 80
Создание кисти LinearGradienBrush ...................................................... 81
Изменение вектора градиента .............................................................. 82
Создание радиальноградиентной кисти .............................................. 82
Создание эффекта трехмерной границы с помощью
радиальноградиентной кисти ................................................................... 83
Восстановление подразумеваемых по умолчанию значений свойств ........ 83
Составление иерархии элементов ............................................................. 84
Резюме ...................................................................................................... 85
Глава 5. Мультимедиа ........................................................................ 86
Смешивание цветов................................................................................... 86
Почему FF? ............................................................................................ 87
Канал прозрачности................................................................................... 88
Свойство Opacity ....................................................................................... 89
Векторная графика .................................................................................... 90
Добавление на сцену мультимедийных элементов .................................... 91
Создание макета приложения ............................................................... 92
Добавление картинок............................................................................ 93
Добавление видео ................................................................................ 94
Тестирование результата в браузере .................................................... 95
Уточнение макета.................................................................................. 95
Добавление еще одной картинки .......................................................... 97
Управление звуком и видео ....................................................................... 97
Отключение автоматического воспроизведения................................... 97
Зацикливание ....................................................................................... 98
Приостановка и возобновление видео .................................................. 99
Изменение формы курсора ................................................................. 100
Другие свойства ...................................................................................... 100
Заполнение пространства .................................................................. 100
Как сделать изображение незаметным при перемещении мыши ........ 101
Использование мультимедийных элементов для вывода ......................... 101
Вывод с помощью видео ..................................................................... 101
Применение невидимого видеоролика для рисования текста ............. 102
Вывод с помощью изображений ......................................................... 102
Трансформации мультимедийных элементов .......................................... 103
Использование мультимедийных элементов из веб ................................. 103
Резюме .................................................................................................... 105
Стр.8
8
Содержание
Глава 6. Еще об Expression Blend ................................................ 106
Создание трансформаций ....................................................................... 106
Создание маски прозрачности OpacityMask ............................................ 107
Контуры ................................................................................................... 108
Создание контура с нуля ..................................................................... 108
Использование сплайнов для модификации контура .......................... 109
Комбинирование форм ....................................................................... 109
Обтравочные контуры .............................................................................. 110
Контуры в XAML ................................................................................... 111
Группировка элементов управления ........................................................ 112
Группировка элементов ...................................................................... 112
Другие панели..................................................................................... 113
Прокрутка миниатюр ........................................................................... 113
Пользовательские элементы управления ................................................ 114
Создание пользовательского элемента управления ........................... 115
Применение пользовательского элемента управления....................... 116
Продолжаем работу над галереей миниатюр ........................................... 117
Добавление фрейма отображения ...................................................... 117
Добавление отражений под миниатюрами ......................................... 118
Отражение видео ................................................................................ 120
И последнее ........................................................................................ 120
Резюме .................................................................................................... 120
Глава 7. Развертывание на вебстранице .............................. 121
Создание тестовой страницы .................................................................. 121
Тег object.................................................................................................. 122
Атрибуты ............................................................................................. 122
Параметры .......................................................................................... 123
Модификация атрибутов и параметров .............................................. 124
Развертывание с помощью JavaScript ................................................. 128
Определение версии Silverlight ................................................................ 128
Интеграция Silverlight в существующую вебстраницу ............................. 128
Изучение оригинального кода ............................................................. 129
Получение XAPфайла ......................................................................... 130
Модификация разметки ...................................................................... 130
Тестирование результата .................................................................... 131
Ссылка на XAPфайл на другом вебсервере ...................................... 132
Получение места на вебсервере............................................................. 132
Требования к вебсерверу .................................................................. 133
Поиск провайдера............................................................................... 134
Знакомство с FTP ..................................................................................... 134
Настройка FTPклиента ....................................................................... 135
Соединение с сервером ...................................................................... 136
Копирование приложения Silverlight ........................................................ 137
Тестирование результата .................................................................... 139
Резюме .................................................................................................... 139
Стр.9
Содержание
9
Глава 8. Программирование Silverlight с помощью
JavaScript ............................................................................................... 140
Основы языка .......................................................................................... 140
Комментарии ...................................................................................... 141
Точка с запятой ................................................................................... 141
Чувствительность к регистру .............................................................. 141
Переменные ........................................................................................ 142
Функции .............................................................................................. 142
Прототипы, this, new............................................................................ 142
Типы .................................................................................................... 143
Встроенные объекты и библиотеки ..................................................... 143
Функция alert....................................................................................... 144
Значение undefined ............................................................................. 144
Значение null ....................................................................................... 145
Обработка событий ............................................................................. 146
Знакомство с концепцией объектов ......................................................... 147
Взаимодействие с другими экземплярами ......................................... 147
Глобальный объект ................................................................................... 148
Литеральная нотация JSON ..................................................................... 149
Создание объектов с помощью JSON ................................................. 149
Статические члены .................................................................................. 150
Загрузка сценариев на вебстраницу ...................................................... 151
Что такое контекст? ................................................................................. 152
Интеграция Silverlight в существующую вебстраницу с помощью
JavaScript ................................................................................................. 153
Где найти файл Silverlight.js ................................................................. 154
Использование файла Silverlight.js ...................................................... 154
Определение версии Silverlight ........................................................... 158
Определение наличия JavaScript ........................................................ 158
Модификация вебстраницы во время выполнения ............................ 159
Отладка ................................................................................................... 159
Резюме .................................................................................................... 159
Глава 9. Основы .NET ........................................................................ 161
История .NET ........................................................................................... 161
Версии, версии, версии… ................................................................... 161
Управляемый и неуправляемый код .................................................... 163
Загрузка и установка Visual Studio 2008 ................................................... 163
Создание приложения Silverlight 2 в Visual Studio 2008 ............................. 164
Сборка и запуск приложения .............................................................. 165
Ошибки компиляции ........................................................................... 165
Знакомство с файлами ....................................................................... 166
Запуск (пустого) приложения .............................................................. 168
Intellisense ................................................................................................ 169
Программирование на C#, основные конструкции .................................. 170
Стр.10
10
Содержание
Типы .................................................................................................... 171
Целые типы ......................................................................................... 171
Типы с плавающей точкой ................................................................... 171
Прочие типы........................................................................................ 172
Преобразование типов ....................................................................... 172
Предложение if then else ..................................................................... 173
Цикл for ............................................................................................... 174
Цикл foreach ........................................................................................ 175
Цикл while............................................................................................ 175
Цикл do… while .................................................................................... 176
Предложение switch…case .................................................................. 177
Операторы .......................................................................................... 178
Резюме .................................................................................................... 180
Глава 10. Продолжаем изучение .NET...................................... 181
Программирование на C# с объектами .................................................... 181
Разбиение задачи на меньшие подзадачи .......................................... 181
Пространства имен и директива using ................................................ 182
Добавление директивы using .............................................................. 182
Видимость .......................................................................................... 183
Свойства ............................................................................................. 183
Наследование ..................................................................................... 185
Добавление интерактивности в приложение Thumbnails.......................... 186
Добавление обработчиков событий .................................................... 186
Отображение увеличенного мультимедийного элемента .................... 187
Перегрузка методов ................................................................................ 190
Возбуждение событий и использование делегатов.................................. 191
Создание объекта EventArgs ............................................................... 192
Объявление события........................................................................... 192
Подписка на событие .......................................................................... 194
Сохранение данных на стороне клиента .................................................. 194
Ограничения безопасности, налагаемые на изолированное хранилище .. 194
Создание объектов ............................................................................. 195
Чтение из изолированного хранилища ................................................ 198
Запись в изолированное хранилище ................................................... 199
Обновление пользовательского интерфейса ...................................... 199
Совместимость с разными браузерами .............................................. 200
Резюме .................................................................................................... 201
Глава 11. И снова анимация .......................................................... 202
Анимирование элементов в Blend ............................................................ 202
Тестирование приложения .................................................................. 204
Изменение свойств анимации ............................................................ 205
Изменение темпа анимации ............................................................... 206
Синхронизация анимаций ........................................................................ 206
Стр.11
Содержание
11
Об элементах анимации ...................................................................... 207
Обращение раскадровки ......................................................................... 208
Анимация PointAnimation .......................................................................... 208
Запуск и останов анимации ..................................................................... 210
Продолжаем работу над галереей миниатюр ........................................... 211
Составляем план ................................................................................. 211
Готовим подмостки ............................................................................. 212
Изготавливаем заготовку анимации ................................................... 213
Изменение темпа анимации параллельным переносом ...................... 214
Запуск анимации из программы ......................................................... 215
Программное создание анимации «затухания» ................................... 219
Резюме .................................................................................................... 221
Глава 12. Кодирование видео в Expression Encoder.......... 222
Прежде чем начать… ............................................................................... 222
Введение в Expression Encoder ................................................................ 222
Параметры............................................................................................... 223
Назначение различных панелей ............................................................... 224
Импорт видео .......................................................................................... 224
Сохранение изменений............................................................................ 226
Задание типа выходных данных ............................................................... 226
Изменение размера и пропорций видео ............................................. 227
Дополнительная обработка и параметры кодека ................................ 229
Добавление заголовка и хвостовика ................................................... 229
Тестирование перед началом кодирования ............................................. 230
Задание метаданных ............................................................................... 231
Добавление собственных метаданных ................................................ 232
Создание глав ..................................................................................... 232
Создание надписей............................................................................. 233
Кодирование видео для Silverlight ............................................................ 234
Проверка результата ............................................................................... 235
Полноэкранное воспроизведение видео............................................. 236
Дополнительные параметры .................................................................... 236
Резюме .................................................................................................... 237
Глава 13. Еще о видео ...................................................................... 238
Почему именно потоковое видео? ........................................................... 238
Публикация на собственном сайте .......................................................... 239
Копирование файлов .......................................................................... 239
Наложение изображения ......................................................................... 240
Добавление картинки или видео ......................................................... 240
Задание дополнительных свойств ...................................................... 241
Наложение XAMLразметки ................................................................. 242
Выбор плеера пользователем .................................................................. 243
Копирование файлов .......................................................................... 243
Стр.12
12
Содержание
Модификация файлов ......................................................................... 244
Создание видео .................................................................................. 246
Как это работает? ............................................................................... 247
Публикация на потоковых серверах Microsoft Silverlight ........................... 248
Регистрация........................................................................................ 248
Установка и конфигурирование надстройки, публикация ................... 249
Тестирование результата .................................................................... 249
Включение приложения в существующую вебстраницу .......................... 250
Использование iframe ......................................................................... 251
Использование JavaScript и Live Control .............................................. 251
Запуск команд сценария .......................................................................... 251
Модификация шаблона плеера в Blend .................................................... 254
Добавление кнопки Full Screen ............................................................ 254
Обработка события в сценарии........................................................... 255
Тестирование результата .................................................................... 256
Резюме .................................................................................................... 256
Глава 14. Взаимодействие .NET и JavaScript ....................... 257
Доступ к .NET из JavaScript ...................................................................... 257
Атрибут ScriptableMember ................................................................... 257
Регистрация объекта .......................................................................... 258
Обработка событий .NET в JavaScript ....................................................... 258
Подготовка класса, доступного из сценария ....................................... 258
Возбуждение события ......................................................................... 260
Подписка на событие в JavaScriptсценарии ....................................... 260
Тестирование программы ................................................................... 262
Вызов JavaScriptметодов из .NET ........................................................... 262
Вызов методов .NET из JavaScript ............................................................ 264
Добавление диалога регистрации в приложение Thumbnails ................... 264
Развитие класса User .......................................................................... 264
Дополнительные свойства .................................................................. 265
Учет нескольких пользователей .......................................................... 268
Модификация класса Page.................................................................. 271
Добавление ссылки Login .................................................................... 273
Добавление вебпроекта .................................................................... 274
Проверка мультимедийных файлов во время сборки .......................... 275
Добавление HTMLдиалога регистрации ............................................ 276
Комбинирование приложения Silverlight с HTML ................................. 277
Перехват событий .NET ....................................................................... 277
Связывание сценариев ....................................................................... 279
Обработка HTMLсобытий................................................................... 280
Резюме .................................................................................................... 280
Глава 15. Элементы управления в Silverlight ........................ 281
Знакомство с иерархией классов............................................................. 281
Класс Object ........................................................................................ 282
Стр.13
Содержание
13
Класс DependencyObject ..................................................................... 282
Класс DependencyProperty .................................................................. 282
Класс UIElement .................................................................................. 282
Класс FrameworkElement ..................................................................... 283
XAML или застраничный код? .................................................................. 283
Верстка с помощью панелей .................................................................... 285
Композиция элементов ....................................................................... 286
Панель Canvas ..................................................................................... 286
Буксировка элемента по холсту .......................................................... 287
Рядное расположение элементов на панели StackPanel ..................... 289
Использование StackPanel для потоковой верстки ............................. 290
Использование панели Grid для выравнивания элементов ................. 290
Задание минимального и максимального размеров ........................... 292
Добавление элементов в сетку ........................................................... 293
Добавление элементов в застраничном коде...................................... 294
Прокрутка и обрамление ......................................................................... 294
Использование ScrollViewer для прокрутки больших областей ............ 294
Обрамление элемента ........................................................................ 296
Всплывающие элементы .......................................................................... 297
Рисование форм ...................................................................................... 298
Свойство Data ..................................................................................... 298
Резюме .................................................................................................... 300
Глава 16. Еще об элементах Silverlight .................................... 301
Класс Control ............................................................................................ 301
Активация и деактивация элементов управления ............................... 302
Применение стилей и шаблонов ......................................................... 302
О шрифтах .......................................................................................... 302
Основные элементы управления.............................................................. 303
Ввод и вывод текста ............................................................................ 303
Класс ButtonBase ................................................................................ 304
Прокрутка и буксировка ...................................................................... 306
Представление мультимедиа .............................................................. 309
Выбор даты с помощью элементов Calendar и DatePicker ........................ 310
Элемент Calendar ................................................................................ 310
Элемент DatePicker ............................................................................. 311
Обработка ошибок .............................................................................. 312
Рукописный ввод ..................................................................................... 312
Разработка простого приложения для рисования .................................... 313
Подготовка сцены ............................................................................... 313
Обработка событий ............................................................................. 315
Запуск приложения ............................................................................. 319
Представление данных с помощью элементов ItemsControl ..................... 319
Элемент TabControl ............................................................................. 320
Подробное рассматривание изображений .............................................. 321
Стр.14
14
Содержание
Как это работает? ............................................................................... 321
Создание пирамиды изображений для DeepZoom .............................. 321
Элемент управления MultiScaleImage ................................................. 323
Резюме .................................................................................................... 324
Глава 17. Ресурсы, стили и шаблоны ....................................... 325
Сохранение объектов в наборах .............................................................. 325
Реализация интерфейсов ................................................................... 326
Использование словарей ресурсов в Silverlight ........................................ 327
Хранение ресурсов ............................................................................. 327
Использование ресурсов в застраничном коде ................................... 328
А зачем такие сложности? ................................................................... 328
Использование ресурсов в XAML ........................................................ 328
Хранение ресурсов в файле App.xaml ................................................. 330
Стилизация элемента управления ........................................................... 331
Создание объекта Style ....................................................................... 331
Использование объекта Style .............................................................. 331
Приоритеты установщиков свойств .................................................... 332
Создание стилей в Blend ..................................................................... 333
Редактирование стиля в Blend ............................................................ 334
Стилизация приложения Thumbnails ........................................................ 334
Стилизация текстовых блоков ............................................................. 334
Стилизация миниатюр ........................................................................ 335
Перемещение ресурсов в Blend .......................................................... 336
Внедрение шрифтов в приложение.......................................................... 337
Внедрение шрифта в Blend ................................................................. 337
Внедрение шрифта в Visual Studio ....................................................... 338
Шаблоны.................................................................................................. 339
Но ведь мы видим элемент управления! ............................................. 339
Редактирование шаблона ................................................................... 340
Модификация состояний .................................................................... 341
Привязка шаблона к элементу управления ......................................... 342
Представление содержимого ............................................................. 343
Резюме .................................................................................................... 344
Глава 18. Привязка к данным и элементы,
допускающие связывание ............................................................. 345
Что такое привязка к данным? ................................................................. 345
Создание объекта данных ................................................................... 345
Создание объекта данных в ресурсах ................................................. 347
Запись в объект данных с помощью механизма привязки ................... 347
Получение уведомлений, поиск ошибок связывания........................... 348
Конвертация значений при связывании .............................................. 349
Более тесное знакомство с классом Binding ............................................ 350
Задание контекста данных ....................................................................... 351
Стр.15
Содержание
15
Использование элементов управления, допускающих связывание ......... 352
Элемент управления ListBox ............................................................... 353
Элемент DataGrid ................................................................................ 360
Использование источников XMLданных .................................................. 366
Резюме .................................................................................................... 366
Глава 19. Создание пользовательских
и нестандартных элементов управления ............................... 367
Создание элемента управления для просмотра миниатюр ...................... 367
Создание объектов данных ................................................................. 368
Элемент ThumbnailsViewerControl ....................................................... 371
Общение с внешним миром ................................................................ 372
Создание объектов и проектирование шаблона данных .......................... 375
Создание экземпляра класса Media в виде XAML ................................ 375
Проектирование шаблона данных ....................................................... 378
Удаление тестового источника данных ................................................ 379
Перемещение мультимедийных файлов ............................................. 379
Подключение ThumbnailsViewer к реальным данным ........................... 381
Возбуждение и обработка события SelectionChanged ......................... 381
Создание нестандартного элемента управления MediaInfoDisplay .......... 383
Вырабатываем план ............................................................................ 383
Создание «оболочки» .......................................................................... 384
Обработка состояний .......................................................................... 387
Обработка частей ............................................................................... 388
Применение шаблона ......................................................................... 390
Резюме .................................................................................................... 391
Глава 20. Еще один шаг вглубь Silverlight 2 ............................ 392
Создание шаблона по умолчанию для элемента управления
MediaInfoDisplay ....................................................................................... 392
Использование элемента управления MediaInfoDisplay ........................... 394
Добавление тестовых данных ............................................................. 394
Помещение элемента управления на сцену ........................................ 394
Создание шаблона .............................................................................. 395
Создание переходов ........................................................................... 396
Удаление тестовых данных .................................................................. 397
Связывание элементов между собой .................................................. 397
Копнем глубже .................................................................................... 398
Прокрутка объектов ................................................................................. 399
Создание нового шаблона для RepeatButton............................................ 401
Создание шаблона .............................................................................. 401
Изменение переходов ......................................................................... 402
Привязка шаблона .............................................................................. 403
Тестирование новой кнопки ................................................................ 403
Стилизация кнопки RepeatButton ........................................................ 403
Стр.16
16
Содержание
Стилизация второй кнопки .................................................................. 404
Перенос классов во внешнюю сборку и рефакторинг .............................. 405
Создание библиотеки классов Silverlight ............................................. 405
Использование внешней библиотеки классов..................................... 408
Несколько слов об объекте Application ..................................................... 410
Универсальные типы ................................................................................ 411
Резюме .................................................................................................... 412
Глава 21. Дальше по пути Silverlight 2 ...................................... 413
Регистрация нескольких обработчиков событий в JavaScript ................... 413
Поиск элементов Silverlight из JavaScriptкода ......................................... 414
Доступ к HTMLстранице из .NET ............................................................. 416
Обмен данными между .NET и JavaScript ................................................. 418
Попытка преобразования.................................................................... 418
Обмен данными в стандартных форматах ........................................... 420
Преобразование в тип ScriptObject ..................................................... 421
Передача параметров инициализации .................................................... 424
Задание параметров инициализации ................................................. 424
Получение параметров инициализации .............................................. 425
Присоединение .NETобработчиков к событиям HTMLэлементов .......... 426
Использование класса HtmlEventArgs ................................................. 427
Публикация непосредственно из Visual Studio ......................................... 428
Отладка приложения Silverlight ................................................................ 429
Сравнение отладочной и выпускной версий........................................ 429
Создание выпускной версии ............................................................... 429
Пошаговое выполнение программы .................................................... 430
Инспекция и модификация переменных ............................................. 432
Отладка в контексте проекта вебсайта .............................................. 433
Отладка JavaScript .............................................................................. 434
Отладка уже запущенных приложений ................................................ 434
Отладка приложений Silverlight на компьютере Macintosh ................... 435
Резюме .................................................................................................... 436
Глава 22. Соединение с веб ........................................................... 437
Создание и загрузка XMLфайла .............................................................. 437
Вынесение информации о мультимедийных файлах из приложения ... 437
Отображение и сокрытие заставки ..................................................... 438
Загрузка XMLфайла с информацией о мультимедийных файлах ....... 439
Отправка запроса ............................................................................... 440
Получение ответа ................................................................................ 441
Чтение XMLфайла с помощью технологии LINQ ................................. 442
Разбор перечислений ......................................................................... 445
Отправка запроса ............................................................................... 445
Обработка результатов ....................................................................... 446
Тестирование приложения .................................................................. 448
Стр.17
Содержание
17
Загрузка zipфайла и индикация хода загрузки ....................................... 448
Создание zipфайла ............................................................................ 448
Расширение класса MediaEx для хранения потока .............................. 449
Загрузка zipфайла ............................................................................. 449
Чтение файлов из архива .................................................................... 451
Обновление пользовательского интерфейса ...................................... 453
Отправка запросов WCFслужбам ............................................................ 455
Перемещение классов User и DataFile на сервер ................................ 455
Адаптация класса DataFile к работе на сервере .................................. 456
Создание WCFслужбы ........................................................................ 457
Реализация службы............................................................................. 458
Модификация клиентского приложения.............................................. 460
Еще о сетевых взаимодействиях.............................................................. 463
Резюме .................................................................................................... 463
Глава 23. Междоменные запросы
и обработка исключений ................................................................ 464
Междоменные запросы ........................................................................... 464
Использование файла междоменной политики Flash .......................... 465
Использование файла междоменной политики Silverlight ................... 465
Ограничения ....................................................................................... 466
Взаимодействие со сторонними службами.............................................. 468
Принятие условий обслуживания Flickr ............................................... 468
Получение ключа для работы с Flickr API ............................................. 468
Подготовка и отправка запроса .......................................................... 469
Обработка ответа................................................................................ 472
Модификация пользовательского интерфейса ................................... 478
Отправка POSTзапросов ........................................................................ 479
Возбуждение и перехват исключений ...................................................... 480
Распространение исключений ............................................................ 481
Свойства класса Exception .................................................................. 483
Перехват необработанных исключений ............................................... 484
Создание собственных типов исключений .......................................... 485
Обработка ошибок Silverlight в JavaScript ............................................ 486
Резюме .................................................................................................... 487
Глава 24. Silverlight: путешествие продолжается .............. 488
Обновление ссылки на службу ................................................................. 488
Принудительное завершение процесса ................................................... 489
Принудительное завершение процесса в отладочном режиме ........... 490
О защите своей интеллектуальной собственности .................................. 491
Защитить любой ценой ....................................................................... 491
Привязка в особых ситуациях .................................................................. 491
Задание привязки в Blend ................................................................... 492
Обработка ошибок контроля ............................................................... 493
Стр.18
18
Содержание
Привязка и свойства Converter, ConverterParameter, ConverterCulture.... 494
Привязка к объекту, а не к свойству .................................................... 495
Использование ASP.NETэлементов управления Silverlight и MediaPlayer .. 496
ASP.NETэлемент Silverlight ................................................................. 497
ASP.NETэлемент MediaPlayer ............................................................. 498
Создание автономных тестов для Silverlight ............................................. 500
Установка каркаса автономного тестирования для Silverlight .............. 501
Создание нового тестового приложения Silverlight ............................. 501
Создание метода расширения TryFindResource .................................. 503
Написание правильного класса .......................................................... 504
Реализация рекурсии.......................................................................... 505
Еще об автономных тестах .................................................................. 507
Повторное использование автономных тестов Майкрософт ............... 507
Изготовление и покупка XAMLресурсов .................................................. 508
Использование Expression Design ....................................................... 508
Поиск XAMLресурсов в Сети .............................................................. 509
Конвертация других форматов в XAML ................................................ 510
Сторонние элементы управления и библиотеки ...................................... 511
Блоги, посвященные Silverlight ................................................................. 511
Резюме .................................................................................................... 512
Алфавитный указатель .................................................................... 513
Стр.19