Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемГаля Языкова
2 Microsoft TechDayshttp:// Александр Шер Разработчик ООО «Айко»
3 Microsoft TechDayshttp:// Зачем WPF и XAML разработчику? Styles & Templates Bindings RoutedEvents & InputBindings Triggers – управление представлением Практические заметки
4 Microsoft TechDayshttp:// – WPF для тех, кому нужна излинше навороченная графика – Все это жудко тормозит – Нет никакого дизайнера форм, а Blend надо покупать отдельно – Стандартных контролов мало, а контролы третьих фирм надо для WPF покупать заново – А что мне дает WPF как разработчику?
5 Microsoft TechDayshttp:// WPF предоставляет очень много возможностей для создания пользовательских интерфейсов (Представление != Графика) Какие из них использовать – решать Вам! Большинство пользователей любит красивые приложения
6 Microsoft TechDayshttp:// WinForms порождает отдельный handle для каждого элемента управления в окне, а WPF использует всего один* – само окно WPF умеет использовать 3D-ускоритель Бизнес приложение не требует графики уровня 3D-шутера Пример из жизни: приложение iiko Front для кассовых терминалов создано на WPF и работает на компьютерах с 1ГГц проц и 256Мб памяти
7 Microsoft TechDayshttp:// В сложных приложениях дизайнер WinForms все равно со временем «отваливается» WPF позволяет легко создавать пользовательские интерфейсы без дизайнера Blend входит в MSDN Premium, а «коробка» стоит меньше 100$
8 Microsoft TechDayshttp:// В WPF логика контрола полностью отделена от представления Во многих случаях в отдельном контроле нет необходимости – достаточно настроить Template Чарты, гриды и красивые элементы управления легко создаются в WPF стандартными средствами DataGrid и Calendar уже есть (
9 Microsoft TechDayshttp:// WPF действительно позволяет отделить представление от логики и данных «Чистая» реализация паттернов вроде MVC Покрытие юнит-тестами Разработка UI параллельно с логикой Механизмы стилей и шаблонов значительно повышают code reuse Более 90% всего, что связано с представлением, создается декларативно
10 Microsoft TechDayshttp:// WPF позволяет хранить в ресурсах экземпляр любого объекта с ключом любого типа Словарь ресурсов может ссылаться на другие словари Любой контрол, стиль или темплейт имеет свой словарь ресурсов
11 Microsoft TechDayshttp:// Стиль – это набор ресурсов, значений свойств, обработчиков событий и триггеров Стили могут применяться явно или автоматически в пределах любой области видимости Стили поддерживают наследование и применение отдельных частей стиля в зависимости от типа контрола StyleSelectorы позволяют применять стили в соответствии с заданной логикой
12 Microsoft TechDayshttp:// Темплейты позволяют полностью изменить внешний вид контрола Логика поведения контрола может использовать именованные части темплейта Элементы в темплейте могут использовать значения свойств контрола DataTemplateSelectorы позволяют выбирать темплейт в зависимости от данных
13 Microsoft TechDayshttp:// XmlDataProvider – работа с XML ObjectDataProvider – вызов методов и создание экземпляров класса CollectionViewSource – фильтрация, сортировка, группировка CompositeCollection – объединение коллекций
14 Microsoft TechDayshttp:// В WPF можно привязать значение DependencyProperty к любому набору источников Свойство не ReadOnly FrameworkPropertyMetadata.IsNotDataBindable == false Bindingи могут быть в любом направлении, с конвертацией данных, с явным или автоматическим обновлением, валидацией Источник может быть задан явно, относительно Bindingа или по имени
15 Microsoft TechDayshttp:// DataContext позволяет привязывать данные к иерархии объектов DataContext наследует значение Значение этого свойства у родителя передается всем дочерним контролам, для которых оно не задано явно Bindingи других свойств объекта затем могут быть заданы относительно DataContextа
16 Microsoft TechDayshttp:// Механизм RoutedEvents позволяет одним контролам порождать команды, а другим перехватывать и выполнять действия Команды передаются по дереву контролов и могут быть перехвачены несколькими контролами Обработчики для команд также могут задаваться в стилях WPF позволяет порождать команды с помощью комбинации клавиш и нажатий кнопок мыши (InputBindings)
17 Microsoft TechDayshttp:// Триггеры позволяют декларативно описывать измения свойства контролов и управлять анимацией Триггеры можно: вешать на срабатывание событий или изменение значений свойств задавать на уровне контролов, стилей или темплейтов комбинировать с биндингами для полного контроля над изменениями представления
18 Microsoft TechDayshttp:// Используйте DataContext для поддерева контролов, связанных с общим источником данных Выделяйте все повторяющиеся значения свойств контролов в стили Храните описание темплейтов как можно выше в дереве контролов Старайтесь подключать словари ресурсов на уровне Application (если допускает Scope) Активное использование RoutedCommands не сильно, но снижает производительность
19 Microsoft TechDayshttp:// CustomControl + Template предпочтительнее UserControl Используйте ValueConverterы и Selectorы DataTrigger + MultiBinding + Converter дает больше контроля, чем MultiDataTrigger Не ориентируйтесь на взаимное расположение частей контрола Старайтесь не использовать код в самом представлении, но не делайте из этого табу!
20 Microsoft TechDayshttp:// Раздел, посвященный WPF в MSDN: WPF на CodePlex: Собрание блоггеров (Dr. WPF, John Smith, Beatriz Costa, etc.):
21 Microsoft TechDayshttp://
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.