- •Разделы дисциплины и виды занятий в часах
- •Общая информация о курсе
- •Введение
- •Об авторах
- •Лекция 1. Краткое знакомство с моделью программирования xaml.
- •Краткий экскурс в историю графических интерфейсов пользователя
- •Windows Presentation Foundation – три в одном
- •Декларативное программирование ui и xaml
- •Основы модели ui и xaml
- •Элементы xaml
- •Элементы управления
- •Графические примитивы
- •Службы документов
- •Преобразования и анимация
- •Ресурсы и стили
- •Разделение труда дизайнера и разработчика
- •Xaml – текущая поддержка
- •Модель программирования xaml
- •Ключевые термины
- •Краткие итоги
- •Xaml подчиняется всем правилам wellformed xml, в частности это означает, что xaml документ:
- •Вариант 2 Задачи 3.
- •Вариант 2 Задачи 8.
- •Вариант 3 Задачи 8.
- •Xaml может использоваться для описания ui:
- •Xaml может использоваться:
- •Лабораторная работа 1. Размещение элементов управления.
- •Задания для самостоятельного выполнения
- •Учебный элемент. Создание нового проекта для Silverlight в VisualStudio 2010.
- •Шаг 1. Создание проекта
- •Шаг 2. Добавляем элементы интерфейса для xaml-страниц
- •Учебный элемент. Silverlight: размещение элементов.
- •Шаг 1. Принципы разметки
- •Шаг 2. Создаем Twitter-приложение
- •Шаг 3. Навигация
- •Шаг 4. Размещаем элементы для страницы поиска
- •Шаг 5. Изменяем UriMapper для Search.Xaml
- •Краткие итоги
- •Литература
- •Лекция 2. Сведения о wpf и Silverlight: Введение и архитектура платформ.
- •Независимость от разрешения
- •Архитектура Silverlight
- •Состав ядра представления:
- •В подмножество .Net Framework входят:
- •Архитектура wpf
- •Иерархия классов
- •Элементы управления wpf
- •Компоновочные элементы управления в системе wpf
- •Ключевые термины
- •Краткие итоги
- •Лекция 3. Стили и шаблоны элементов управления wpf.
- •Создание стиля
- •Использование стиля
- •Размещение стилей
- •Основы шаблонов
- •Создание шаблона
- •Повторное использование шаблона Control’а
- •Связывание в Шаблонах
- •Установка шаблонов через стили
- •Повторное использование настроек цвета
- •Ключевые термины
- •Краткие итоги
- •Вариант 2 Задачи 5.
- •Задания для самостоятельного выполнения
- •Учебный элемент. Стили и ресурсы в wpf
- •Шаг 1. Применение стиля в xaml документе
- •Шаг 2. Динамическое применение стилей в коде приложения
- •Поддержка множества целевых платформ
- •Клиентский профиль .Net
- •Визуальный конструктор Visual Studio
- •Графика Шейдеры
- •Кеширование графики
- •Новые функции для анимации
- •Усовершенствования двухмерной графики.
- •Поддержка Generics
- •Ключевые термины
- •Краткие итоги
- •Набор для практики
- •Литература
- •Лекция 5. Silverlight и wpf в Visual Studio 2010 (продолжение).
- •Новые возможности Silverlight 4. Silverlight 5: основные нововведения ожидаемого релиза. Хронология Silverlight
- •Связывание с данными Отладка
- •Поддержка Full-Trust внутри браузера
- •Обработка множественного нажатия кнопки мыши
- •Поддержка выбора элементов в ItemsControl с клавиатуры
- •Повышение полномочий для приложений в браузере
- •Поддержка нескольких окон
- •Доступ к файловой системе для приложений с повышенными привилегиями
- •Установка имени файла по умолчанию в SaveFileDialog
- •Улучшение работы с аудио
- •Изменение скорости проигрывания медиа
- •Поддержка пульта дистанционного управления
- •Работа с текстом
- •Отладка при связывании с данными
- •Улучшенная поддержка шаблона mvvm
- •Использование связывания в стилях
- •Неявные шаблоны
- •Другие изменения
- •Краткие итоги
- •Вариант 2 Задачи 2.
- •Вариант 2 Задачи 4.
- •Вариант 2 Задачи 6.
- •Вариант 3 Задачи 6.
- •Литература
- •Лекция 6. Привязка данных в технологиях wpf и Silverlight
- •Принципы работы с данными
- •Модель данных в .Net
- •Всепроникающее связывание
- •Преобразование данных
- •Ресурсы
- •Основные принципы связывания
- •Привязка к объектам clr
- •Редактирование
- •Ключевые термины
- •Вариант 2 Задачи 5.
- •Шаг 1. Создание повторно используемой функциональности
- •Устанавливаем стили для элементов управления
- •Двусторонняя привязка данных
- •Шаг 2. Добавление обработки событий клавиатуры
- •Шаг 3. Инкапсуляция разметки и логики в элемент управления UserControl
- •Реализация элемента управления
- •Добавление кода
- •Использование пользовательского элемента управления
- •Многократное использование
- •Шаг 1. Рефакторинг кода адресной формы
- •Код внутри класса AdressCustomControl
- •Определение свойств зависимости
- •Шаг 2. Рефакторинг кода разметки указателя цвета
- •Шаг 3. Оптимизация шаблона элемента управления
- •Манипулирование частями шаблона
- •Документирование частей шаблона
- •Ключевые термины
- •Вариант 2 Задачи 3.
- •Вариант 3 Задачи 3.
- •Задача 4. Вариант 1 Задачи 4.
- •Вариант 2 Задачи 4.
- •Вариант 3 Задачи 4.
- •Задача 5. Вариант 1 Задачи 5.
- •Вариант 2 Задачи 5.
- •Вариант 3 Задачи 5.
- •Задача 6. Вариант 1 Задачи 6.
- •Вариант 2 Задачи 6.
- •Вариант 3 Задачи 6.
- •Задача 7. Вариант 1 Задачи 7.
- •Вариант 2 Задачи 7.
- •Вариант 3 Задачи 7.
- •Литература
- •Лабораторная работа 3. Пользовательские элементы управления.
- •Задания для самостоятельного выполнения
- •Учебный элемент. Создание пользовательского элемента управления средствами дизайнера VisualStudio Шаг 1. Создание Silverlight проекта
- •Шаг 2. Создание пользовательского элемента управления
- •Шаг 5. Использование Custom Control
- •Учебный элемент. Создание пользовательского элемента управления средствами дизайнера Expression Blend
- •Шаг 1. Инкапсуляция ui в User Control
- •Шаг 2. Привязка адресов к нашему AddressUserControl – контроллеру.
- •Краткие итоги
- •Литература
- •Лекция 8. Использование событий, команд и триггеров в технологиях wpf и Silverlight
- •Принципиальные основы действий
- •Композиция элементов
- •Слабая связь
- •Декларативные действия
- •События
- •Команды
- •Команды и привязка к данным
- •Триггеры
- •Добавление триггеров к данным
- •Добавление триггеров к элементам управления
- •Вариант 2 Задачи 2.
- •Вариант 2 Задачи 6.
- •Вариант 2 Задачи 8.
- •Вариант 3 Задачи 8.
- •Литература
- •Лабораторная работа 4. Использование команд в технологиях wpf и Silverlight
- •Задания для самостоятельного выполнения
- •Учебный элемент. Использование стандартных и нестандартных команд Шаг 1. Использование стандартных команд.
- •Шаг 2. Использование нестандартных команд.
- •Шаг 3. Перевод команд из неактивного состояния в активное и обратно.
- •Краткие итоги
- •Литература
- •Лекция 9. Применение паттерна mvvm как оптимального при проектировании wpf и Silverlight приложений
- •Паттерн Model-View-ViewModel (mvvm)
- •Обязанности и характеристики классов.
- •Класс представления (View).
- •Класс модели представления (View Model).
- •Представление или Модель Представления?
- •Класс модели (Model).
- •Взаимодействие классов.
- •Привязка данных.
- •Реализация iNotifyPropertyChanged.
- •Реализация iNotifyCollectionChanged.
- •Реализация iCollectionView.
- •Команды.
- •Реализация Command Objects.
- •Подтверждение правильности данных и сообщение об ошибках.
- •Реализация iDataErrorInfo.
- •Создание и соединение.
- •Создание модели представления через xaml.
- •Создание модели представления программно.
- •Создание представления, определенного как шаблон данных.
- •Вариант 2 Задачи 1.
- •Вариант 3 Задачи 1.
- •Задача 2. Вариант 1 Задачи 2.
- •Вариант 2 Задачи 2.
- •Вариант 3 Задачи 2.
- •Задача 3. Вариант 1 Задачи 3.
- •Вариант 2 Задачи 3.
- •Вариант 2 Задачи 6.
- •Вариант 3 Задачи 6.
- •Задача 7. Вариант 1 Задачи 7.
- •Вариант 2 Задачи 7.
- •Вариант 3 Задачи 7.
- •Литература
- •Лабораторная работа 5. Реализация wpf проекта с помощью mvvm toolkit’а
- •Задания для самостоятельного выполнения
- •Учебный элемент. Реализация паттерна mvvm средствами Model-View-ViewModel Toolkit 0.1
- •Шаг 1. Постановка задачи
- •Шаг 4. Редактирование
- •Шаг 5. Команды
- •Краткие итоги
- •Литература
- •Лекция 10. Проектирование приложения с учетом использования единого опыта разработки для настольных и Web-проектов.
- •Подходы к решению задачи
- •Разработка кроссплатформенного проекта с самого начала
- •Разработка для одной платформы с последующим портированием на другую
- •Инструментарий
- •Создание ссылок на файлы в Visual Studio
- •Создание ссылок на xaml файлы
- •Директивы препроцессора
- •Разделяемые классы
- •Синхронное использование xaml
- •Решение проблем недостающего функционала Отсутствие FrameworkPropertyMetadata
- •Отсутствие приведения значения
- •Отсутствие метода OverrideMetadata()
- •Отсутствие зависимых свойств только для чтения
- •Отсутствие класса Brushes
- •Конструкторы по умолчанию для геометрий
- •Отсутствие свойства No PathSegment.IsStroked
- •Краткие итоги
- •Принцип инверсии зависимостей
- •Формы инверсии зависимостей
- •IoC контейнер
- •Определение моделей представления
- •Определение представлений
- •Сопоставление модели представления и представления
- •Реализация iNotifyPropertyChanged средствами аспектно-ориентированного программирования
- •Краткие итоги
- •IoC контейнер в mef инкапсулируется классом …
- •Понятие iChildViewModelManager
- •Реализация ChildViewModelBase
- •Реализация ModalChildViewModelBase
- •Реализация MessageViewModel
- •Краткие итоги
- •Литература Лабораторная работа 6. Построение кроссплатформенного Silverlight/wpf приложения.
- •Создание проектов
- •Краткие итоги
- •Список литературы
Ключевые термины
Attached properties: является понятием Extensible Application Markup Language (XAML). Attached properties предназначено для использования в качестве типа глобального свойства, которое может быть задано для любого объекта. В Windows Presentation Foundation attached properties обычно определяются как особая форма свойства зависимости, не имеющая "оболочки" традиционного свойства.
ContentPresenter: отображает содержимое элемента управления ContentControl.
ContentControl: Представляет элемент управления с отдельным содержимым любого типа.
Direct3D (D3D): интерфейс вывода трёхмерных примитивов.dpi
Rich Internet application (RIA, «Насыщенное Интернет-приложение») — это приложение, доступное через Интернет, насыщенное функциональностью традиционных настольных приложений, которое предоставляется либо уникальной спецификой браузера, либо через плагин, либо путём «песочницы» (виртуальной машины).
WPF Toolkit - набор визуальных элементов и компонентов для WPF.
Краткие итоги
Архитектура WPF включает уровни API интерфейса, медиа-интеграции и визуализации. Каждый уровень имеет пространства имен, в которых сформированы иерархии классов WPF. В основу всех элементов управления в WPF положены три основных принципа: композиция, повсеместное использование развитого содержимого и простая модель программирования. Мы рассмотрели фундаментальные концепции, которые способствуют претворению этих принципов в жизнь: модель содержимого и шаблоны. Не упуская их из виду, мы дали краткий обзор элементов управления, поставляемых вместе с WPF.
Набор для практики
Вопросы:
Назовите и коротко охарактеризуйте основные компоненты архитектуры WPF?
Назовите способы компоновки элементов управления в WPF?
Поясните назначение и возможности класса Grid.
Поясните назначение и отличия классов StackPanel и WrapPanel.
Приведите пример необходимости использования класса ContentControl.
Тесты
Задача 1.
Вариант 1 Задачи 1.
Какая из технологий базирует свое масштабирование на системной установке DPI, а не на DPI физического дисплейного устройства?
Ответ 1. традиционные Windows-приложения
+ Ответ 2. WPF/Silverlight-приложения
Ответ 3. ASP-приложения
Ответ 4. ни одна из технологий
Вариант 2 Задачи 1.
В каких технологиях пользовательский интерфейс приложений не является масштабируемым?
+ Ответ 1. традиционные Windows-приложения
Ответ 2. WPF / Silverlight приложения
Ответ 3. Silverlight приложения
+ Ответ 4. ASP-приложения
Вариант 3 Задачи 1.
WPF базирует свое масштабирование на …
Ответ 1. системной установке DPI
Задача 2.
Вариант 1 Задачи 2.
В платформу Silverlight не входит:
Ответ 1. ядро представления
Ответ 2. подмножество .NET Framework for Silverlight
Ответ 3. компонентов для установки и обновления
+ Ответ 4. компоненты User32
Вариант 2 Задачи 2.
Платформа Silverlight содержит:
+ Ответ 1. подмножество .NET Framework for Silverlight
Ответ 2. компоненты User32
+ Ответ 3. компонентов для установки и обновления
Ответ 4. DirectХ
Вариант 3 Задачи 2.
Поддержка какой технологии, входящей в состав ядра представления, позволяет увеличивать размеры изображений в высоком разрешении
Ответ 1. Deep Zoom
Задача 3.
Вариант 1 Задачи 3.
Компонент архитектуры WPF содержащий типы верхнего уровня, включая те, что представляют окна, панели и прочие виды элементов управления:
Ответ 1. PresentationCore
Ответ 2. Common Language Runtime
+ Ответ 3. PresentationFramework
Ответ 4. User32
Вариант 2 Задачи 3.
Компонент архитектуры WPF PresentationCore содержит:
+ Ответ 1. типы WPF верхнего уровня, включая те, что представляют окна, панели и прочие виды элементов управления
Ответ 2. содержит базовые типы, такие как UIElement и Visual, от которых унаследованы все фигуры и элементы управления
+ Ответ 3. высокоуровневые программные абстракции, такие как стили
Ответ 4. ингредиенты, которые потенциально могут применяться вне WPF, такие как Dispatcher Object и Dependency Object
Вариант 3 Задачи 3.
Для определения того, какое место на экране к какой программе относится, используется компонент …
Ответ 1. User32
Задача 4.
Вариант 1 Задачи 4.
Какой компонент архитектуры WPF визуализирует все рисование:
Ответ 1. User32
+ Ответ 2. Direct3D
Ответ 3. Codecs
Ответ 4. GDI
Вариант 2 Задачи 4.
Какие компоненты архитектуры WPF не участвуют в визуализации графики:
+ Ответ 1. User32
Ответ 2. Direct3D
+ Ответ 3. Codecs
+ Ответ 4. GDI
Вариант 3 Задачи 4.
Низкоуровневый API-интерфейс, обеспечивающий поддержку изображений
Ответ 1. Codecs
Задача 5.
Вариант 1 Задачи 5.
Базовый класс для всех контейнеров компоновки — элементов, которые содержат в себе один или более дочерних элементов и упорядочивают их в соответствии с определенными правилами компоновки
Ответ 1. Control
Ответ 2. ContentControl
+ Ответ 3. Panel
Ответ 4. FrameworkElement
Вариант 2 Задачи 5.
Какой из классов стоит выше класса FrameworkElement в иерархии классов WPF
Ответ 1. Control
+ Ответ 2. UIElement
Ответ 3. Panel
Ответ 4. Shape
Вариант 3 Задачи 5.
Базовый класс для всех элементов управления, которые имеют отдельный фрагмент содержимого
Ответ 1. ContentControl
Задача 6.
Вариант 1 Задачи 6.
Свободно распространяемый пакет WPF Toolkit содержит:
Ответ 1. стандартный набор элементов WPF
Ответ 2. элементы управления, созданные другими разработчиками
+ Ответ 3. элементы управления, не вошедшие в стандартный набор
Ответ 4. элементы управления Windows Forms
Вариант 2 Задачи 6.
Пользователь может использовать элементы управления, предназначенных для использования в пользовательском интерфейсе из:
+ Ответ 1. стандартного набора элементов WPF
+ Ответ 2. набора элементов управления WPF, созданные другими разработчиками
+ Ответ 3. элементы управления из WPF Toolkit
Ответ 4. элементы управления Windows Forms
Вариант 3 Задачи 6.
Элементы управления, которые не вошли в стандартный набор для системы WPF содержаться в пакете …
Ответ 1. WPF Toolkit
Задача 7.
Вариант 1 Задачи 7.
Если пользователь хочет размещать элементы управления, используя абсолютную систему координат (как в системе Windows Forms), то он может в качестве поверхности выбрать элемент управления:
Ответ 1. Grid
Ответ 2. StackPanel
+ Ответ 3. Canvas
Ответ 4. абсолютная система координат в WPF недопустима
Вариант 2 Задачи 7.
Элемент управления позволяющий разделять свою область на подобласти, в которые можно поместить другие элементы управления:
+ Ответ 1. Grid
Ответ 2. StackPanel
Ответ 3. Canvas
Ответ 4. WPF не имеет подобных компоновочных элементов
Вариант 3 Задачи 7.
Компоновочный элемент управления предоставляющий возможность автоматически изменять размер его содержимого при изменении его собственного размера
Ответ 1. Grid
Задача 8.
Вариант 1 Задачи 8.
Свойство позволяющее присваивать элементу управления системы WPF определенное содержимое:
+ Ответ 1. Content
Ответ 2. Image
Ответ 3. Panel
Ответ 4. данное свойство не присутствует у элементов управления WPF
Вариант 2 Задачи 8.
Свойство Visibility может принимать следующие значения:
+ Ответ 1. Visible
+ Ответ 2. Hidden
+ Ответ 3. Collapsed
Ответ 4. True/False
Вариант 3 Задачи 8.
Свойство позволяющее присваивать элементу управления системы WPF определенное содержимое - …
Ответ 1. Content
Литература
WPF http://msdn.microsoft.com/ru-ru/library/ms746927.aspx
Элементы управления http://msdn.microsoft.com/ru-ru/library/ms752069.aspx.
Мак-Дональд, М. WPF: Windows Presentation Foundation в .NET 4 с примерами на С# 2010 Пер. с англ. –М.: ООО “И.Д. Вильямс”, 2011., стр. 25 – 45, 81-120.
К. Андерсон Основы Windows Presentation Foundation. Пер. с англ. А. Слинкина — М.: ДМК Пресс, 2008 — стр. 38-60.
