Основы windows presentation foundation pdf

WPF: Windows Presentation Foundation в .NET 4.5

Книга «WPF: Windows Presentation Foundation в .NET 4.5 с примерами на C# 5.0 для профессионалов» представляет собой исчерпывающее авторитетное руководство по внутренней работе WPF. Благодаря серьезным примерам и практическим рекомендациям, вы изучите все, что необходимо знать для профессионального использования WPF.

Книга начинается с построения прочного фундамента из элементарных концепций, подкрепленного существующими знаниями языка C#. Затем предлагается обсуждение сложных концепций с их демонстрацией на полезных примерах, которые подчеркивают получаемую экономию времени и затраченных усилий

Платформа Windows Presentation Foundation (WPF) от Microsoft предоставляет инфраструктуру разработки, предназначенную для построения высококачественных пользовательских интерфейсов для операционной системы Windows. Она сочетает в себе насыщенный контент из широкого диапазона источников и позволяет получить неограниченный доступ ко всей вычислительной мощи компьютера, функционирующего под управлением Windows.

В книге «WPF: Windows Presentation Foundation в .NET 4.5 с примерами на C# 5.0 для профессионалов» подробно рассматриваются следующие темы

  • Фундаментальные основы программирования для WPF, начиная с XAML и заканчивая элементами управления и потоком данных
  • Разработка реалистичных приложений, позволяющих увидеть навигацию, локализацию и развертывание в действии
  • Исследование расширенных элементов управления пользовательского интерфейса, которые предлагаются WPF
  • Изучение способов управления документами внутри WPF: компоновка текста, вывод на печать и упаковка документов
  • Использование графики и мультимедиа для совершенствования приложений

Книга рассчитана на разработчиков, которые впервые сталкиваются с WPF. Опыт программирования на C# и знание базовой архитектуры .NET поможет быстрее разобраться с примерами, но все необходимые концепции кратко объясняются с самого начала.

Здесь можно скачать книгу «WPF: Windows Presentation Foundation в .NET 4.5» для ознакомления (бесплатный PDF фрагмент от правообладателя), почитать онлайн или купить полную электронную версию в форматах FB2, PDF, EPUB, TXT, FB3, MOBI.

Windows Presentation Foundation

Windows Presentation Foundation (WPF [1] ) (произносится — «даб-пи-эф») — система для построения клиентских приложений Windows с визуально привлекательными возможностями взаимодействия с пользователем, графическая (презентационная) подсистема в составе .NET Framework (начиная с версии 3.0), использующая язык XAML [2] .

WPF предустановлена в Windows Vista (.NET Framework 3.0), Windows 7 (.NET Framework 3.5 SP1), Windows 8 (.NET Framework 4.0 и 4.5), Windows 8.1 (.NET Framework 4.5.1). С помощью WPF можно создавать широкий спектр как автономных, так и запускаемых в браузере приложений [3] .

Содержание

Особенности технологии

В основе WPF лежит векторная система визуализации, не зависящая от разрешения устройства вывода и созданная с учётом возможностей современного графического оборудования. WPF предоставляет средства для создания визуального интерфейса, включая язык XAML (eXtensible Application Markup Language), элементы управления, привязку данных, макеты, двухмерную и трёхмерную графику, анимацию, стили, шаблоны, документы, текст, мультимедиа и оформление [3] .

Графической технологией, лежащей в основе WPF, является DirectX, в отличие от Windows Forms, где используется GDI/GDI+ [4] . Производительность WPF выше, чем у GDI+ за счёт использования аппаратного ускорения графики через DirectX.

Также существует урезанная версия CLR, называющаяся WPF/E, она же известна как Silverlight.

Использование разметки XAML

XAML представляет собой язык декларативного описания интерфейса, основанный на XML. Также реализована модель разделения кода и дизайна, позволяющая кооперироваться программисту и дизайнеру. Кроме того, есть встроенная поддержка стилей элементов, а сами элементы легко разделить на элементы управления второго уровня, которые, в свою очередь, разделяются до уровня векторных фигур и свойств/действий. Это позволяет легко задать стиль для любого элемента, например, Button (кнопка).

Средства разработки

Для работы с WPF требуется любой .NET-совместимый язык. В этот список входит множество языков: C#, F#, VB.NET, C++, Ruby, Python, Delphi (Prism), Lua и многие другие. Для полноценной работы может быть использована как Visual Studio, так и Expression Blend. Первая ориентирована на программирование, а вторая — на дизайн и позволяет делать многие вещи, не прибегая к ручному редактированию XAML. Примеры этому — анимация, стилизация, состояния, создание элементов управления и так далее.

Читайте также:  Как отключить прослушивание своего микрофона windows

Возможности

WPF предоставляет широкий спектр возможностей по созданию интерактивных настольных приложений:

Привязка данных

Это гибкий механизм, который позволяет через расширения разметки XAML связывать различные данные (от значений свойств элементов управления до общедоступных свойств, реализующих поля базы данных через Entity Framework). Привязка данных представлена классом Binding, который в свою очередь унаследован от MarkupExtension, что позволяет использовать привязки не только в коде, но и в разметке:

Помимо основного класса Binding в WPF реализовано еще несколько механизмов привязок:

  • MultiBinding — позволяет создавать множественные привязки, указывая несколько элементов
  • TemplateBinding — используется в шаблонах для связывания свойства элемента внутри шаблона со свойством элемента, к которому применен шаблон
  • PriorityBinding — ранжирует список привязок и выбирает из них свойство (согласно приоритету) к которому будет применена привязка. Если привязка, имеющая наивысший приоритет успешно возвращает значение, то нет необходимости обрабатывать другие привязки в списке.

Стили

Позволяют создавать стилевое оформление элементов и, как правило, используются только в разметке:

Если стиль задается в ресурсах (например в словаре ресурсов), то можно использовать атрибут x:Key для указания уникального ключа. Затем в элементе управления, к которому необходимо применить стиль, нужно использовать расширение разметки StaticResource для связывания с этим стилем. Если использовать этот прием, то стили не будут нагромождать разметку.

Шаблоны элементов управления

Позволяют менять графическое оформление элементов и представлены классом ControlTemplate. В отличие от стилей, можно менять не только графическое представление элемента, но и его структуру. При этом шаблон элемента управления задается через свойство Template.

Простой пример круглой кнопки:

Шаблоны данных

В отличие от шаблонов элементов управления, задаются для определенного контекста данных (который в блочных элементах управления задается через свойство DataContext, а в списковых через ItemsSource). Сам шаблон данных представлен классом DataTemplate. Для обозначения типа данных, к которому необходимо применить шаблон, используется свойство DataType.

Ресурсы

Система ресурсов позволяет объединять шаблоны, стили, кисти, анимацию и многие другие интерактивные элементы, что существенно упрощает работу с ними. Ресурсы задаются в свойстве Resources класса FrameworkElement, от которого унаследованы все элементы управления, панели компоновки и даже класс Application. Это позволяет создавать многоуровневую систему ресурсов:

  • ресурсы внутри объекта — действительны только для этого объекта
  • ресурсы внутри панели компоновки (например Grid) — позволяет задать границу контекста ресурсов на уровне этой панели
  • ресурсы внутри окна Window — если в приложении используется несколько окон, то ресурсы одного окна не будут доступны ресурсам другого окна
  • ресурсы приложения — доступны повсеместно (как правило задаются в отдельном словаре ресурсов)

Графика

WPF представляет обширный, масштабируемый и гибкий набор графических возможностей:

  • Графика, не зависящая от разрешения и устройства. Основной единицей измерения в графической системе WPF является аппаратно-независимый пиксель, который составляет 1/96 часть дюйма независимо от фактического разрешения экрана.
  • Дополнительная поддержка графики и анимации. WPF упрощает программирование графики за счет автоматического управления анимацией. Разработчик не должен заниматься обработкой сцен анимации, циклами отрисовки и билинейной интерполяцией
  • Аппаратное ускорение. Графическая система WPF использует преимущества графического оборудования, чтобы уменьшить использование ЦП.
Двухмерная графика

WPF предоставляет библиотеку общих двухмерных фигур, нарисованных с помощью векторов, таких, как прямоугольники и эллипсы, а также графические пути. И в своей функциональности фигуры реализуют многие возможности, которые доступны обычным элементам управления.

Двухмерная графика в WPF включает визуальные эффекты, такие как градиенты, точечные рисунки, чертежи, рисунки с видео, поворот, масштабирование и наклон.

Трехмерная графика

WPF также включает возможности трехмерной отрисовки, интегрированные с двухмерной графикой, что позволяет создавать более яркий и интересный пользовательский интерфейс.

Читайте также:  Линукс смена языка ввода

WPF (Windows Presentation Foundation)

Описание презентации по отдельным слайдам:

WPF (Windows Presentation Foundation)
WPF – новая технология .NET Framework 3.x для создания пользовательских интерфейсов в клиентских приложениях.
Одна из задач, которая была решена при проектировании и реализации WPF, -разделение работы между дизайнерами и программистами.
Решение состоит в разделении исходного кода WPF-приложения на две части:
декларативное описание пользовательского интерфейса с использованием языка разметки XAML (EXtensible Application Markup Language );
код на языке программирования, например C#, содержащий обработку событий.
Для компиляции WPF-приложений обычно используется Microsoft Build Engine (MSBuild) –технология, включенная в .NET Framework 3.x в виде набора сборок.

Компиляция WPF приложений
При компиляции XAML файлы разбираются (parsed) и преобразуются в коды на языке BAML ( Binary Application Markup Language), которые встраиваются как ресурс в исполняемый файл.
Код BAML компактнее исходного XAML кода и при выполнении его загрузка выполняется быстрее, чем загрузка XAML файла.
При компиляции для каждого XAML файла создается файл с кодом на языке программирования, содержащий частичное (partial) объявление класса для элемента верхнего уровня в файле разметки.
В общем случае компиляция XAML файлов осуществляется в два прохода.
Сначала компилируются только те XAML файлы, которые не содержат ссылки на локально-определенные типы (т.е. типы, определенные где-нибудь в данном проекте), так как они существуют только в виде исходного кода и еще не были скомпилированы.
XAML файлы со ссылками на локально-определенные типы компилируются при втором проходе компилятора.
Вся необходимая для работы MSBuild информация об исходных файлах, ссылках на зависимые сборки и конфигурация приложения находится в файлах проекта MSBuild — XML файлах, подчиняющихся MSBuild schema.

XML (EXtensible Markup Language )
XML – простой гибкий текстовый формат, который используется как основа для создания языков разметки для публикации документов и обмена данными.
Стандарт XML издан в виде рекомендаций консорциума всемирной паутины ( World Wide Web Consortium — W3C) – международной организации, которая занимается технологическими стандартами для всемирной паутины.

Документ XML состоит из элементов.
Элементы документа могут быть вложенными, но не могут пересекаться. Таким образом, элементы документа образуют дерево.
Каждый документ XML должен иметь один и только один корневой элемент.
Элементы могут содержать атрибуты , представляющие собой пары имя-значение.

Элементы XML
Каждый элемент документа должен иметь имя.
Имя элемента — это строка символов, которая начинается с подчеркивания или буквы, и состоит только из букв, цифр, символов подчеркивания (underscore), дефисов (hyphen) и точек (period). Имена элементов чувствительны к регистру.
Каждый элемент начинается с открывающего тэга и заканчивается закрывающим тэгом. Все, что находится между открывающим и закрывающим тэгом, называется содержимым (content) элемента.
Открывающий тэг имеет вид

или (для элемента с атрибутами)

Закрывающий тэг имеет вид .
Элемент может быть пустым. Пустой элемент может содержать атрибуты. Для пустого элемента допустима форма с пустым тэгом (empty tag)

Данные элемента XML
Текстовые данные XML-элемента представляют собой либо символьные данные (CDATA), либо анализируемые символьные данные, либо их комбинацию.
Можно вставить символы Unicode в виде кодов символа в десятичном или шестнадцатиричном формате (character references ), используя синтаксис
Определены пять подстановочных строк (entity references ), которые можно использовать в самом документе вместо символов угловых скобок <> и символа слэш /, чтобы XML-анализатор не трактовал их как управляющие символы языка разметки.

Разделы CDATA
Все символы, которые находятся между комбинацией символов трактуются XML анализатором как содержимое, не включающее символов разметки. Все остальные данные – это анализируемые символьные данные, которые XML-анализаторы интерпретируют как язык разметки.
Подстановочные строки (character references) не работают внутри разделов CDATA.
Разделы CDATA не могут быть вложенными.
Комментарии
Комментарии – любая текстовая информация, размещенная между символами .
Комментарии можно разместить внутри пролога документа, в содержимом документа или после документа.
Комментарии не могут появиться внутри значений атрибутов документа или внутри тэгов.

Читайте также:  Не могу удалить контакт windows phone

Атрибуты XML
Элемент может иметь атрибуты. Атрибуты состоят из пар имя-значение.

Имена атрибутов подчиняются тем же требованиям, что и имена элементов.
Атрибуты размещаются в открывающем тэге элемента. Число атрибутов элемента не ограничено. Пустой элемент может содержать атрибуты.
Значение атрибута заключается в одинаковые кавычки – простые или двойные. Для разных атрибутов можно использовать разные кавычки. Внутри двойных кавычек можно использовать одинарные без использования » и наоборот.
Атрибуты должны иметь как имя, так и значение.
Внутри атрибутов можно использовать entity references и character references, но нельзя использовать разделы CDATA.
Порядок определения атрибутов может не сохраняться XML-анализатором.
XML-анализаторы не сохраняют число пробелов в значениях атрибутов.

Пространства имен XML
Чтобы избежать конфликтов при использовании элементов с одинаковыми именами, в документе можно определить пространства имен.
Пространство имен определяется с помощью атрибута xmlns c префиксом или без него.
Для пространств имен обычно используются URI (Uniform Resource Identifier). URI не обязан ссылаться на реально существующий объект.
Пространство имен по умолчанию задается атрибутом xmlns без префикса. Элемент, в котором определено пространство имен по умолчанию, и все его дочерние элементы автоматически относятся к этому пространству имен, если явно не указано другое пространство имен.
Объявление пространства имен с префиксом имеет вид xmlns:имя=URI
Имя задает префикс пространства имен.
Префикс можно использовать как в том элементе, в котором он определен, так и в его дочерних. Атрибут не помещается автоматически в то же пространство имен, что и содержащий его элемент.
Пространство имен действует только в пределах того элемента, атрибутом которого является его декларация.

Схема документа XML
Схема документа (schema ) определяет допустимую структуру документа –формальные спецификации имен элементов документа, определяющие допустимые имена элементов и их комбинации, отношения дочерний-родительский между элементами документа , последовательность, в которых могут появиться дочерние элементы, и их число.
Для схемы документа используется один из языков описания структуры XML документа.
Консорциум W3C рекомендует использовать как стандарт — XML Schema Definition (XSD) – язык на основе XML для описания схем XML-документов.
Файл, содержащий XML Schema, обычно имеет расширение «.xsd» (XML-schema-definition).
Документ называется well-formed, если он корректен с точки зрения синтаксиса XML.
Документ называется valid, если его структура согласуется со схемой документа.

Модель данных документа XML
После проверки документа на соответствие XML Schema программа может создать модель данных документа, включающую
словарь (названия элементов и атрибутов) ;
модель содержания (отношения между элементами и атрибутами и их структура) ;
типы данных.
Каждый элемент в этой модели ассоциируется с определённым типом данных, позволяя строить в памяти объект, соответствующий структуре XML-документа.

XAML (EXtensible Application Markup Language)
XAML – построенный на базе XML язык разметки для описания объектов .NET Framework.
Подмножество WPF XAML языка используется в технологии WPF для описания пользовательского интерфейса.
XAML – декларативный язык разметки и дает возможность отделить описание объектов пользовательского интерфейса от логики выполнения приложения (run-time logic) .
Конструкция частичного определения класса дает возможность описать класс в нескольких файлах – исполняемый код в файлах с исходным кодом, например, на C#, а декларативную часть класса – на языке разметки XAML.
В XAML определен набор правил, по которым элементам ставятся в соответствие классы или структуры, атрибутам – свойства или события, а пространства имен XML отображаются на пространства имен CLR.

Пространства имен XAML
Два пространства имен – пространство имен XAML и пространство имен WPF — присутствуют во всех WPF документах:

Button Click

Синтаксический анализатор использует атрибут Class для создания класса, производного от типа, совпадающего именем элемента ( Window в данном примере) .
Атрибут Class указан с префиксом x: , что означает, что это имя находится в пространстве имен XAML.

Оцените статью