Windows presentation foundation wpf реферат

Обновлено: 05.07.2024

Презентация на тему: " WPF (Windows Presentation Foundation) WPF – новая технология.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)

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 Имя задает префикс пространства имен. Префикс можно использовать как в том элементе, в котором он определен, так и в его дочерних. Атрибут не помещается автоматически в то же пространство имен, что и содержащий его элемент. Пространство имен действует только в пределах того элемента, атрибутом которого является его декларация.

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

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

Особенности создания приложения Windows Foundation Presentation. Разработка приложения-презентации, оперирующего страницами XAML как "слайдами". Анализ модификации приложения Windows Foundation Presentation: работа с решением в Expression Blend.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 24.04.2017
Размер файла 2,6 M

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Лабораторная работа № 9

Создание приложения-презентации Windows Foundation Presentation

Содержание

1. Создание приложения Windows Foundation Presentation

2. Модификация приложения Windows Foundation Presentation

3. Модификация приложения Windows Foundation Presentation: работа с решением в Expression Blend

О приложении к Лабораторной работе № 9

Вводная часть

В предыдущей лабораторной работе данного практикума были рассмотрены основные направления работы с Windows Foundation Presentation и языка разметки XAML.

Стандартные инструменты редактирования элементов управления и формирования разметки для среды разработки хороши, но не более. Специально для иных, более расширенных оформлений и дизайнов создан другой мощнейший инструмент: Microsoft Expression Blend (текущая версия 4).

приложение presentation expression windows

Как показано на рисунке выше, пакет Expresson Studio доступен бесплатно. В пакет включены четыре отдельных приложения (Web, blend, Desing, Encoder), а также набор документации. Другие компоненты кроме Blend на не интересуют (опять же цель данного практикума не ознакомить читателя с работой иных сторонних продуктов, но основы работы в Expression Blend будут изложены в кратком виде).

1. Создание приложения Windows Foundation Presentation

Запускаем Visual Studio 2010, откроется Начальная страница:

Рис. 2. 1. Создание нового проекта

Рис. 2. 2. Окно создания нового проекта

Рис. 2. 3. Вводим данные нового проекта приложения WPF

После нажатия клавиши ОК мы увидим сформированный проект и исходный код приложения WPF (не пустого изначально). Среда разработки сформировала исходный код в двух файлах (не считая стандартного AssemblyInfo.cs). Один из файлов отвечает за программу в целом (это файл App.xaml.cs), а второй за формирование окна приложения -- инициализацию конструктора формы и всех её элементов (это файл MainWindow.xaml.cs). Как видим, исходный код, например файла App.xaml.cs не отличается от шаблонного:

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

Введение в WPF

Windows Presentation Foundation ( WPF ) — система для построения клиентских Windows приложений для технологии Microsoft. NET с визуально привлекательными возможностями взаимодействия с пользователем. С помощью WPF можно создавать широкий спектр как автономных, так и размещенных в браузере приложений [ 12 ] .

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

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

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

  • веб-подобную модель компоновки, которая обеспечивает размещение и упорядочивание элементов управления по их содержимому;
  • многофункциональную модель рисования на базе графических примитивов (базовых форм, текстовых блоков, графических ингредиентов);
  • модель с форматированным текстом, которая обеспечивает отображение форматированного стилизованного текста в любой части пользовательского интерфейса, комбинирования текста со списками, рисунками и другими интерфейсными элементами;
  • задание анимации с помощью декларативных дескрипторов;
  • поддержка аудиовизуальной среды для проигрывания любых аудио- и видеофайлов;
  • стили и шаблоны, которые позволяют стандартизировать форматирование и управление визуализацией элементов управления, а также повторно использовать эти решения в различных местах проекта;
  • команды, которые позволяют определять их в одном месте и многократно связывать с различными элементами управления в приложении;
  • декларативный пользовательский интерфейс, который позволяет описывать содержимое окон или страниц с помощью языка XAML.

Основные компоненты архитектуры WPF приведены на рис. 2.1.

Архитектура WPF [4]

Компонент PresentationFramework содержит типы WPF верхнего уровня, включая представление окна, панелей и других элементов управления. PresentationCore содержит базовые типы, такие как UIElement и Visual, от которых порождаются все формы и элементы управления . WindowsBase включает различные типы, которые могут использоваться за пределами WPF, в частности, компоненты DispatchObject и DependencyObject. Компонент milcore является ядром визуализации WPF. WindowsCodecs представляет собой низкоуровневый API - интерфейс для поддержки создания изображений. Direct 3D также является низкоуровневым API -интерфейсом, через который осуществляется визуализация всей графики в WPF. User32 используется для определения, какая программа получает тот или иной участок экрана.

Архитектура WPF определяет основные пространства имен для иерархии классов . Базовый набор элементов управления WPF определяет ключевые иерархии классов системы ( рис. 2.2). На рис. 2.2 абстрактные классы изображены овалами, а конкретные классы – прямоугольниками.

Фундаментальные классы WPF [4]

Классы WPF получают поддержку свойств зависимости за счет порождения от класса DependencyObject.

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

Все пользовательские элементы управления являются потомками классов UIElement или FrameworkElement. Класс UIElement поддерживает такую функциональность как компоновка , ввод, фокус и события. Класс FrameworkElement добавляет к функциональности UIElement задание полей, выравнивание, поддержку связывания данных, анимацию и стили.

Класс Shape является базовым для построения таких геометрических форм как прямоугольник , эллипс , многоугольник, линия и путь .

Класс Control определяет элементы управления , которые могут взаимодействовать с пользователем. Это кнопки, списки, текстовые элементы.

Классы ContentControl и ItemsControl являются базовыми для элементов управления, которые могут иметь содержание единственное или коллекцию соответственно.

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

image

Нововведения в WPF 4

Я напишу отдельную статью, которая опишет важные изменения, которые грядут в WPF и Silverlight конструкторах в VS 2010.

Элементы управления

image

Элементы управления для построения богатых приложений

WPF 4 добавляет разнообразные элементы управления, чтобы создавать бизнес-приложения еще быстрее и проще. Новый, богатый набор элементов управления включает такие LOB-необходимые элементы управления, как DataGrid, DatePicker и Calendar. Данные новые элементы управления на 99% поведенчески и API совместимые с их Silverlight аналогами, позволяя разработчику создавать совместимые веб- и клиентские приложения, оптимизируя технологический процесс благодаря повторному использованию Silverlight и WPF кода.

Хитрые приёмы

Windows 7 и элемент управления Office Ribbon

Новый WPF элемент управления Ribbon будет доступен, почти сразу, после релиза WPF 4. Он поддерживает все стандартные возможности, с которыми знаком конечный пользователь: закладки и группы, динамическое изменение размеров, панель быстрого доступа, меню приложения, закладками, зависящими от контекста, горячими клавишами и многое другое.

image

WPF версия Ribbon будет обладать полноценной расширяемостью для соответствия изменениям в руководстве в следующих релизах. Ограниченная CTP версия доступна уже сегодня.

Графика

Поддержка третьих пиксельных шейдеров

WPF основан на поддержке популярного ShaderEffect, впервые представленного в WPF 3.5 SP1, который позволяет создавать эффекты, используя пиксельные шейдеры 3-ей версии. PS 3.0 более сложный, чем PS 2.0, что дает возможность создавать неотразимые эффекты на поддерживаемом оборудовании.

LayoutRounding

WPF 4 переняла свойство UseLayoutRounding, представленное в Silverlight 2. Движок макета зачастую рассчитывает подпиксельные координаты расположения. Это приводит к артефактам при прорисовке, когда элемент расположен на стыке подпиксельных границ и сглажен над несколькими физическими пикселями.

UseLayoutRounding заставит движок макета располагать элементы по всем границам пикселя, следовательно, убирая большинство артефактов прорисовки, вызванной данной проблемой, что позволяет создавать чистый и чёткий UI по умолчанию.

CleartypeHint

Новое добавленное свойство CleartypeHint позволяет разработчикам приложений включить высококачественную прорисовку Cleartype текста, когда во многих ситуациях он был заранее отключен. Такие ситуации включают в себя текст в наслоившихся окнах, текст в VisualBrush, DrawingBrush, BitmapCacheBrush и везде, где представление промежуточной прорисовки будет предыдущим результатом в черно-белом тексте.

Текстовый стек

Новый стек для прорисовки текста

WPF стек для прорисовки текста был полностью заменен, изменение, которое приводит к существенным усовершенствованиям в чёткости прорисовки текста, способности к изменению настроек и поддержки международных языков. Данный новый текстовый стек поддерживает оптимизированный символьный слой, чтобы показывать текст с сопоставимой резкостью текста в Win32/GDI:

image

Так же новый стек поддерживает явно выбираемые режимы прорисовки текста: aliased, grayscale, ClearType.

image

Новый текстовый стек позволяет оптимизировать текстовую привязку для анимации и статики. Вдобавок, новый текстовый стек поддерживает шрифты с встроенными картами изображений, что позволяет многим восточно-азиатским шрифтам прорисовываться с чёткостью, к которой привыкли пользователи Win32.

BindableRun

С выпуском WPF, Run.Text был простым CLR-свойством. Это значит, что Run.Text испытывает недостаток во всех преимуществах системы зависимостей свойств в WPF, самое значительное из которых — привязка. В WPF 4 мы конвертировали Run.Text в зависимое свойство, позволяющее разработчикам впервые использовать, привязанный к данным, Run. Больше информации об этом тут.

Собственные словари

WPF включает в себя проверку орфографии, которая до 4-ой версии использовала словари предоставляемые ОС. Это было большой проблемой для приложений, которые используют специфическую терминологию, данные приложения надоедали постоянными уведомлениями о неправильном написании. WPF 4 представляет API, которое позволяет приложениям добавлять слова в словари, используемые WPF для проверки орфографии. Более подробно об этом тут.

Кисть выделения и каретки

В порыве разрешить разработчикам настраивать богатый вид WPF приложений, теперь вы можете изменить кисть для выделения текста и каретки через два простых свойства — SelectionBrush и CaretBrush:

image

Windows 7

  • Мультитач события Manipulation, Inertia (Pan, Zoom, Rotate) над UIElement
  • Простые мультитач события (Up, Move, Down) над UIElement, UIElement3D и ContentElement
  • Захват нескольких элементов управления
  • Поддержка мультитач в ScrollViewer
  • Расширяемость сенсорных устройств
  • Совместимость с Surface SDK в будущем

Интеграция c Windows 7 интерфейсом

WPF 4 предоставляет новый и ключевой функционал в Windows 7 для WPF разработчиков. Новая панель задач захламлена и может передавать больше информации. Aero-пиктограммы поддерживают пользовательские команды. Jump List обеспечиваетт доступ к контекстуальному запуску задач и файлов для приложения.

  • Задачи
  • Элементы
  • Список недавно открытых и часто используемых элементов
  • Собственные категории
  • Индикатор прогресса
  • Иконки наложения
  • Кнопки с миниатюрами с поддержкой команд
  • Текст описания для миниатюр в менеджере окон

image

Иконка наложения (Icon Overlays)

Иконка наложения позволяет приложению выводить определённые уведомления и состояние пользователю через собственную кнопку в панели задач, отображая небольшое наложение, которое появляется в нижнем правом углу кнопки.

Индикатор прогресса

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

image

Панели миниатюр (Thumbnail Toolbars)

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

Основы WPF

Новый движок XAML/BAML парсера

В WPF 4 был заменена реализация XamlReader.Load(), BAML-загрузка, функциональность Control & DataTemplate новым движком построенным на основе нового System.Xaml.dll. Как часть стараний, мы исправили много ошибок и добавили много новых функциональных улучшений. Пользователи XamlReader.Load() могут воспользоваться несколькими новыми особенностями языка в XAML2009, такие как поддержка генерик-типов. MarkupExtensions и TypeConverters могут уже сейчас получать доступ к многим сервисам через создания объектного графа, позволяя выполнять больше сценариев, как доступ к Root-объекту. Будет еще проще создать инструменты для анализа и манипулирования XAML с новыми низкоуровневыми API, предоставляемые в System.Xaml.dll.

Поддержка привязки данных для DLR

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

Visual State Manager (VSM)

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

image

VSM является очень гибким в генерировании анимации перехода в соответствующие состояния, следовательно автор элемента управления тратит меньше времени на написание кода и больше времени на его вид. Это означает, что VSM может дать автору элемента управления возможность легко изменять поведение и вид элементов управления, а также изменять визуальный ответ элемента управления на пользовательское действие. Все это полностью поддерживается в Expression Blend.

HTML-XBAP Script Interop

WPF 4 обеспечивает средства для прямого общения между XBAP и скриптами в размещенной HTML странице (где XBAP загружен в HTML фрейм или элемент IFRAME). XBAP может получить глубокий доступ в HTML DOM, включая ActiveX элементы управления, встроенные в содержащей HTML странице, а также обрабатывать события DOM.

WPF открывает главный объект скрипта в размещаемом фрейме. Это динамический объект, который представляет объект окна фрейма, а также любые функции или глобальные переменные в скрипте на HTML странице. Из него, приложение может вызывать функции скрипта напрямую или обращаться к HTML DOM. Данная функциональность доступна в partial-trust XBAP и во всех поддерживаемых версиях Internet Explorer и Firefox.

Виртуализация UIAutomation

WPF представил виртуализированне элементы управления в предыдущих версиях. Тем не менее, не было стандартизированного способа для клиента автоматизации взаимодействия с виртуализированным элементом управления. В WPF 4 было добавлено два новых шаблона для элементов управления — ItemsContainerPattern и VirtualizedItemPattern, для поддержки доступа и взаимодействия с виртуализированными элементами. ItemsContainerPattern используется для получения доступа к виртуализированным элементам управления и для поиска виртуализированного элемента, а VirtualizedItemPattern для реализации виртуализированных элементов.

Шаблон SynchronizedInput

Это еще один UIA шаблон проектирования элемента управления, добавленные в WPF 4. Данный шаблон используется клиентами автоматизации, чтобы отслеживать направление заданных событий ввода в корректный элемент WPF фреймворком. Данный шаблон имеет три события автоматизации: InputReachedTargetEvent, InputReachedOtherElementEvent и InputDiscardedEvent, чтобы сообщать, обработан ли ввод.

Развертывание

image

Тоже самое диалоговое окно вы увидите при создании “Setup and Deployment” проекта (“Add New Project”/“Other Project Types”). NET4 Client Profile выделен в списке по умолчанию.

Full trust развертывание XBAP приложений

Читайте также: