Windows presentation foundation презентация

WPF (Windows Presentation Foundation) WPF – новая технология.NET Framework 3.x для создания пользовательских интерфейсов в клиентских приложениях. Одна. — презентация

Презентация была опубликована 8 лет назад пользователемwww.tka4.org

Похожие презентации

Презентация на тему: » WPF (Windows Presentation Foundation) WPF – новая технология.NET Framework 3.x для создания пользовательских интерфейсов в клиентских приложениях. Одна.» — Транскрипт:

1 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 в виде набора сборок.

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

3 XML (E X tensible M arkup L anguage ) XML – простой гибкий текстовый формат, который используется как основа для создания языков разметки для публикации документов и обмена данными. Стандарт XML издан в виде рекомендаций консорциума всемирной паутины ( World Wide Web Consortium — W3C) – международной организации, которая занимается технологическими стандартами для всемирной паутины. Документ XML состоит из элементов. Элементы документа могут быть вложенными, но не могут пересекаться. Таким образом, элементы документа образуют дерево. Каждый документ XML должен иметь один и только один корневой элемент. Элементы могут содержать атрибуты, представляющие собой пары имя- значение.

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

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

Читайте также:  Windows 10 настройка цветовой гаммы

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

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

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

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

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

11 XAML (E X tensible A pplication M arkup L anguage) XAML – построенный на базе XML язык разметки для описания объектов.NET Framework. Подмножество WPF XAML языка используется в технологии WPF для описания пользовательского интерфейса. XAML – декларативный язык разметки и дает возможность отделить описание объектов пользовательского интерфейса от логики выполнения приложения (run-time logic). Конструкция частичного определения класса дает возможность описать класс в нескольких файлах – исполняемый код в файлах с исходным кодом, например, на C#, а декларативную часть класса – на языке разметки XAML. В XAML определен набор правил, по которым элементам ставятся в соответствие классы или структуры, атрибутам – свойства или события, а пространства имен XML отображаются на пространства имен CLR.

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

Читайте также:  Mac os для интел

Основы Windows Presentation Foundation XAML Лекция 11. — презентация

Презентация была опубликована 7 лет назад пользователемyu-shatalov.narod.ru

Похожие презентации

Презентация на тему: » Основы Windows Presentation Foundation XAML Лекция 11.» — Транскрипт:

1 Основы Windows Presentation Foundation XAML Лекция 11

2 Графика в Windows Forms Рисование силами ОС ( использование Windows API) User32 – внешний вид окон, элементов управления ( кнопок, текстовые поля и т. д.) GDI / GDI+ — рисование фигур, текста, изображений. Обработка графики Центральным процессором (CPU) Графика в WPF Использование DirectX. Отображением элементов занимается DirectX. Ускорение за счет аппаратных средств графической подсистемы (GPU). Совсем не используется системный модуль GDI / GDI+. User32 – по прежнему используется, но в минимальных количествах. Обработка и маршрутизация ввода, определение участка экрана, принадлежащего приложению. Следствия использования DirectX в WPF Более богатые графические возможности Поддержка 3D графики Поддержка произвольной анимации и мультимедиа При проектирование интерфейса WPF обычно используется векторная графика

3 В Windows Forms пиксель В WPF независимая от разрешения единица измерения ( равная 1/96 дюйма ) Элементы выгладят одинаково на экранах с разным разрешением. На экранах с более высоким DPI ( точек на дюйм экрана ) интерфейс более четко прорисовывается, а не уменьшается в размерах Используется системная установка DPI Размер элемента пересчитывается на текущее значение DPI в системе. При дробном значении пикселя используется сглаживание.

4 Пример : В Windows Forms разные кнопки Кнопка с текстом – просто Кнопка с текстом и рисунком – сложнее Кнопка с видео – неподъемно. В WPF и XAML все 3 кнопки делаются одинаково просто. Это возможно благодаря возможности вкладывать одни элементы управления в другие Это применимо не только к кнопкам, но и почти ко всем другим элементам управления

5 Пример WPF- приложения Анимированная кнопка с видео

6 Уровни аппаратного ускорения : 0 – Видеокарта не представляет никакого аппаратного ускорения (DirectX 7 и ниже ) 1 – Видеокарта поддерживает DirectX 7, но не поддерживает — DirectX 9 2 – Видеокарта поддерживает DirectX 9 Об уровне можно узнать по значению переменной RenderCapability.Tier (RenderCapability.Tier >> 16) Определяется при первом при первом старте инфраструктуры WPF Если видеокарта не поддерживает аппаратного ускорения, то недостающие возможности обеспечиваются за счет CPU > 16) Определяется при первом при первом старте инфраструктуры WPF Если видеокарта не поддерживает аппаратного ускорения, то недостающие возможности обеспечиваются за счет CPU»>

7 Аппаратное ускорение Независимость от разрешения Отсутствие фиксированного внешнего вида Декларативное описание пользовательского интерфейса (XAML) XAML — декларативный язык описания интерфейса Рисование на основе объектов Поддержка аудио и видео Продвинутые возможности отображения текстовых документов Анимация. Декларативное описание анимации Система команд Поддержка стилей, тем и шаблонов Привязки (Binding)

8 Разделение логики и оформления Бизнес логика – C# Оформление ( интерфейс ) – XAML Разделение задач Логика – программист Интерфейс – дизайнер ( используя, например, Expression Blend) Подходы для создания пользовательского интерфейса Декларативный (XAML) Императивный подходы (C#) Независимость от разрешения экрана Произвольное изменение размеров окон Автоматическая адаптация под содержимое ( например, локализованные ресурсы ) Гибкая компоновка пользовательского интерфейса Отложенная модель отрисовки содержание – разработчик отрисовка – система

9 PresentationFramework.dll PresentationCore.dll WindowsBase.dll milcore.dll WindowsCodecs.dll Direct3D.dll User32.dll Управляемый API интерфейс WPF Уровень медиа — интеграции Уровень системы

10 eXtended Application Markup Language расширенный язык разметки приложений

11 XAML – eXtended Application Markup Language – расширенный язык разметки приложений Основан на XML. Расширяет его Это декларативный язык, описывающий структуру графического интерфейса, стили и сценарии Декларативность – описание структуры и свойств, без кода

12 Использование XAML для Определения структуры ( типа HTML) Задания стилей ( типа CSS) Анимации и мультимедиа Трехмерной графики и анимации Использование C# для Обработки событий Логики приложения

13 Применение XAML Windows Presentation Foundation (WPF) Silverlight Workflow Foundation (WF) Windows Communication Foundation (WCF) XAML может использоваться в любой другой предметной области для декларативного описания, используя пользовательское множество объектов WPF использует XAML, но может и обойтись без него XAML используется и в других областях, не только в WPF

14 Hello, WPF World!

Читайте также:  Астра линукс не работает звук

15 очень похожа на дерево. PrintPrint PrinterPrinter Print Range CopiesCopies Number of Copies CountCount FlagFlag

16 Используют XML – eXtended Markup Language PrintPrint PrinterPrinter Print Range CopiesCopies Number of Copies CountCountFlagFlag

17 Элементам UI соответствуют С одной стороны – элементы XML С другой стороны – классы.NET Имеется соответствие между.NET и XAML

18 XAMLC#Элемент Объект класса АтрибутСвойство Вложенность Спец. свойство -Метод Триггер- Сеттер- Атрибут-событие Подписка на событие

19 Компиляция XAML компилируется в BAML и добавляется в качестве ресурса к сборке Создается частичный класс реализующий метод InitializeComponent(), который : загружает BAML создает объекты ( по структуре BAML) привязывает объекты к переменным ( каждому именованному элементу в XAML в частичном классе создается соответствующее поле ) привязывает обработчики события Частичные классы объединяются Исполнение Исполняется C#- код Удобство Благодаря декларативному подходу создавать интерфейс на XAML значительно удобнее, чем на C#

20 xmlns=» – основное пространство имен WPF. Охватывает все классы WPF, включая все классы элементов управления. По умолчанию задается как основное пространство имен в XAML. xmlns:x=» – пространство имен XAML. Содержит служебные свойства XAML, которые влияют на то как интерпретируется документ. Можно добавлять и другие пространства имен для использования в XAML. Синтаксис : xmlns: Префикс =clr-namespace: ПространствоИмен ;assembly= ИмяСборки » Префикс – префикс XML, который будет использован для указания пространства имен в разметке XAML ПространствоИмен – полное название пространства имен C# ИмяСборки – имя сборки, в которой описано пространство имен ( без dll). xmlns:Sys=clr-namespace:System;assembly=mscorlib» xmlns:Col=clr-namespace:System.Collections.Generic;assembly=mscorlib»

21 — все понятно : Text – типа string — Свойство Margin имеет тип Thickness. Непонятно как по строке создать тип Thickness и задать ему параметры. Для этого анализатор XAML использует конвертеры типов. Класс – конвертер указывается с помощью атрибута TypeConverter для свойства ( например, Margin) или для класса ( например, Thickness). Анализатор XAML ищет конвертер, преобразует с его помощью строку в нужные тип и присваивает результат свойству.

22 Трудности при задании в виде строки ( например, коллекции ) Задаются с помощью синтаксиса элемент — свойство …. По точке элемент распознается не как класс, а как задание сложного свойства Может применяться для задания любого свойства

23 Свойства, которые определены в одном классе, а применяются во многих других классах, не связанных наследованием с определяющим классом. Синтаксис : ОпределяемыйТип. ИмяСвойства = значение

24 Свойства Name и x:Name При задании имени в автоматически генеренной части класса создается поле с таким именем и типом соответствующим типу элемента. Также в методе InitializeComponent будет создан код для задания этого поля созданным объектом при анализе BAML. В отличии от Windows Forms, элемент в WPF не обязан иметь имя. Имя необходимо задавать, если элемент предполагается использовать в коде или необходимо ссылаться на элемент в XAML

25 Каждый элемент сам решает, как поступать со своими вложенными элементами Если родительский элемент реализует интерфейс IList, анализатор XAML вызывает метод IList.Add(), передавая вложенный элемент. Если родительский элемент реализует интерфейс IDictionary, анализатор XAML вызывает метод IDictionary.Add(), передавая вложенный элемент. При этом необходимо задать свойство x:Key для каждого вложенного элемента. Если родительский элемент помечен атрибутом ContentProperty, то анализатор использует дочерний элемент, чтобы установить указанное свойство Текст кнопки Green Blue

26 Определены два метода записи & имя _ сущности ; &#UTF_ код _ символа ; Сущности : СимволПример &&& >

27 DispatcherObject DependencyObject Visual UIElement FrameworkElement PanelControl ContentControl ItemsControl Shape – STA. Управление потоками – Свойства зависимости – Отображение – Компоновка, события, фокус, ввод – Варианты компоновки, привязки, стили, анимация Panel – базовый для всех контейнеров компоновки Control – базовый для всех контролов. Поддержка шаблонов Shape – базовый для всех графических фигур ContentControl – Отображение одного содержимого ItemsControl – Отображение коллекции

28 System.Windows – пространство имен Application Приложение в целом События приложения Цикл обработки сообщений Window Окно верхнего уровня приложения События окна Основа логики WPF

29 Свойства StartupUri – XAML- файл приложения MainWindow – главное окно Указан StartupUri – окно назначается автоматически Методы Run() – запуск цикла обработки сообщений События Startup – запуск приложений Exit – выход из приложения Навигационные приложения

30 Свойства Content – наполнение окна … Методы Show() – показать окно Close() – закрыть окно Hide() – спрятать окно События Closed – окно закрыто Closing – окно закрывается

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