Windows Presentation Foundation - Binary Studio › media › 10321 › wpf.pdf · 2020-02-18 ·...

Preview:

Citation preview

WPF

Windows Presentation Foundation

Windows Presentation Foundation (WPF) ― это система для построения сложных клиентских приложений Windows с огромными визуальными возможностями взаимодействия с пользователем.

• Векторная система визуализации.

• Новый графический механизм (DirectX).

• Аппаратное ускорение.

• Независимость от разрешения.

• Никакого фиксированного внешнего вида элементов управления.

• Декларативный пользовательский интерфейс (XAML).

Архитектура WPF

PresentationFramework.dll

PresentationCore.dll WindowsBase.dll

milcore.dll WindowsCodecs.dll

Управляемый API-интерфейс

WPF

Уровень медиа -

интеграции

Direct3D User32

Иерархия классов

DispatcherObject

Visual

DependencyObject

UIElement

FrameworkElement

Shape Panel Control

ContentControl ItemsControl

XAML

Extensible Application Markup Language (XAML) – расширяемый язык разметки приложений.

XAML – язык разметки

Этот язык также используется в приложениях Silverlight, Windows Phone 7, Workflow.

Объединяет работу дизайнера и программиста. (Одна из ключевых причин создания Microsoft языка XAML)

Варианты XAML

Существует несколько подмножеств XAML.

• WPF XAML – то что мы с вами сегодня будем рассматривать.

• XPS XAML – часть WPF XAML определяет XML представление форматированных электронных документов.

• Silverlight XAML – подмножество WPF XAML предназначенное для Silverlight приложений.

• WF XAML – включает элементы Windows Workflow Foundation.

• WP7 XAML – включает элементы для платформы Windows Phone 7.

Основы XAML

• Каждый элемент в XAML отображается на экземпляр класса .NET.

• Как и XML, допускает вложенности.

• Свойства каждого класса устанавливаются через атрибуты.

Пример:

Пространство имен XAML

xmlns – Специализированный атрибут в XML, который зарезервирован для пространств имен.

http://schemas.microsoft.com/winfx/2006/xaml/presentation - основное пространство имен WPF.

http://schemas.microsoft.com/winfx/2006/xaml - Пространство имен XAML. (включает различные служебные свойства XAML)

Класс Application

Что он делает?

• Отслеживает все открытые окна в приложении.

• Решает когда приложение должно быть остановлено.

• Инициирует события приложения:

– Startup

– Exit

– SessionEnding

– Activated

– Deactivated

– DispatcherUnhendledException

Demo

Layout контейнеры

Все layout контейнеры в WPF наследуются от класса Panel.

Основные layout контейнеры

• StackPanel - размещает элементы в стеке.

• WrapPanel – размещает элементы в сериях строк с переносом.

• DockPanel – выравнивает элементы по краю контейнера.

• Grid – выстраивает элементы в строки и колонки невидимой таблицы.

• UniformGrid – помещает элементы в невидимую таблицу с одинаковыми размерами для ячеек.

• Canvas – Позволяет элементам позиционироваться абсолютно.

StackPanel

StackPanel – устанавливает дочерние элементы в одну строку или колонку.

Grid

Grid – позволяет разбить ваше окно на маленькие области которыми вы можно управлять с других панелей.

Canvas

Canvas – позволяет размещать элементы используя точные координаты.

Demo

Ресурсы (Object resource)

Ресурс объекта – это .NET объект который определяется в одном месте, а используется в нескольких.

• Эффективность

• Удобство сопровождения

• Адаптируемость

Каждый элемент имеет свою собственную коллекцию ресурсов.

Статические и динамические ресурсы.

Словари ресурсов.

Разделение словарей ресурсов.

Стили

• Стиль дает возможность сразу определить все свойства элемента .

• Возможность использовать ресурсы в стилях.

• Создание объекта стиля в файле ресурсов или в ресурсе объекта.

• Добавление обработчиков событий.

• Несколько уровней стилей.

• Возможность определять шаблоны в стилях.

• Автоматическое применение стилей по типу.

Шаблоны

Шаблоны - используются для определения вида и поведения элемента управления.

• Можно изменить отображение и поведение любого элемента WPF.

• Шаблоны в стилях.

• Использование шаблонов со стилями.

• Использование привязки к свойствам элемента.

• Шаблоны можно хранить в ресурсах.

Demo

Data Binding (Привязка данных)

Data Binding – способность привязать свойства одного объекта к свойствам другого.

• Привязка к свойству элемента.

• Множественные привязки.

• Режимы привязки.

• Выбор события по которому будет срабатывать обновления привязки.

• Использование конвертеров.

• Форматирование строки.

DataContext

DataContext – это свойство предоставляет мост для связывания данных между моделью и элементами XAML.

• Элементы пользовательского интерфейса в WPF имеют при себе связываемое свойство DataContext.

• Позволяет элементам наследовать информацию об источнике данных из родительского элемента.

Лучше показать….

Recommended