Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Теория. Общие сведения о WPF



МИНОБРНАУКИ РОССИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

Анапский филиал «Московский государственный гуманитарный университет имени М.А. Шолохова»

Предмет: Устройство и функционирование информационной системы

Практическая работа №3. Работа с WPF.

Тема: Знакомство с WPF.

Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C#.

Максимальное время выполнения задания: 4 часа.

Теория. Общие сведения о WPF

В Microsoft разработали многочисленные инструменты для создания пользовательского интерфейса (С/C++/Windows API, VB6, MFC и т.д.), предназначенные для построения настольных приложений. Каждый из этих программных инструментов предлагает кодовую базу для представления основных аспектов приложения с графическим интерфейсом, включая главные окна, диалоговые окна, элементы управления, системы меню и т.п. В начальном выпуске платформы.NET API-интерфейс Windows Forms быстро стал предпочтительной моделью разработки пользовательских интерфейсов, благодаря его простой, но очень мощной объектной модели. Хотя с помощью Windows Forms было успешно разработано множество полноценных настольных приложений, следует признать, что его программная модель довольно асимметрична. Просто говоря, сборки System.Windows.Forms.dll и System.Drawing.dll не обеспечивают прямой поддержки многих дополнительных технологий для построения полноценного настольного приложения.

Технология WPF (появившаяся в версии.NET 3.0) специально создавалась для того, чтобы объединить все ранее несвязанные программистские задачи в рамках единой объектной модели. Таким образом, при разработке трехмерной анимации больше не возникает необходимости в ручном кодировании с использованием API-интерфейсов DirectX (хотя это можно делать), поскольку нужная функциональность встроена в WPF. Решения.NET 3.0 для обеспечения желаемой функциональности:

Построение форм с элементами управления

Поддержка двухмерной графики

Поддержка трехмерной графики

Поддержка потокового видео

Поддержка ДОКУМЕНТОВ нефиксированного формата

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

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

Применение XAML не ограничивается приложениями WPF. Любое приложение может использовать XAML для описания дерева объектов.NET, даже если они не имеют ОТНОШЕНИЯ к визуальному пользовательскому интерфейсу. Например, в API-интерфейсе Windows Workflow Foundation основанная на XAML грамматика применяется для определения бизнес-процессов и специальных действий.

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

Элементы управления WPF могут быть модифицированы стилями и шаблонами, что позволяет строить внешний вид приложения с минимальными усилиями. В отличие от Windows Forms, единственной веской причиной для построения библиотеки специальных элементов управления WPF может быть необходимость в изменении поведения элемента управления (т.е. добавление специальных методов, свойств или событий, переопределение виртуальных методов в подклассах). Если вы просто хотите изменить внешний вид элемента управления (как в случае с круглой анимированной кнопкой), это можно СДЕЛАТЬ полностью через разметку.

Такие наборы инструментов для построения графических интерфейсов, как Windows Forms, MFC или VB6, обрабатывают все запросы на визуализацию (включая визуализацию элементов управления, подобных кнопкам и окнам списков), используя низкоуровневый API-интерфейс, основанный на С (GDI), который является составной частью ОС Windows в течение многих лет. GDI обеспечивает адекватную производительность простых графических программ; однако если пользовательскому интерфейсу приложения нужна была высокопроизводительная графика, приходилось обращаться к DirectX. Программная модель WPF существенно отличается в том, что при визуализации графических данных GDI не используется. Все операции визуализации (т.е. двух- и трехмерная графика, анимация, визуализация графических интерфейсных элементов) теперь используют API-интерфейс DirectX. Очевидной выгодой этого является тот факт, что приложение WPF автоматически использует преимущества аппаратной и программной оптимизации. К тому же приложения WPF могут задействовать очень развитые графические службы (эффекты размытия, сглаживания, прозрачности и т.п.) без сложностей, присущих прямому программированию для API-интерфейса DirectX.

Хотя WPF выносит все запросы визуализации на уровень DirectX, нельзя утверждать, что приложение WPF будет работать столь же быстро, как приложение, построенное на основе неуправляемого C++ и DirectX. При разработке настольного приложения, которое требует максимальной скорости выполнения (вроде трехмерной игры), неуправляемый C++ и DirectX по-прежнему остаются наилучшим подходом.

Windows Presentation Foundation (WPF) — это новый API-интерфейс, предназначенный для построения настольных приложений, который интегрирует различные настольные API-интерфейсы в рамках единой объектной модели, с обеспечением четкого разделения ответственности через XAML. В дополнение к этим важнейшим моментам приложения WPF также выигрывают от других дополнительных средств. Ниже кратко перечислены основные службы WPF

Множество диспетчеров компоновки (намного больше, чем в Windows Forms) для обеспечения исключительно гибкого контроля над размещением содержимого.

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

Встроенный механизм стилей, позволяющий определять "темы" для приложения WPF.

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

Поддержка двух- и трехмерной графики, анимации и воспроизведения видео и аудио.

Развитый типографский API-интерфейс, поддерживающий ДОКУМЕНТЫ XML Paper Specification (XPS), фиксированные документы (WYSIWYG), документы нефиксированного формата и аннотации в документах (например, API-интерфейс Sticky Notes).

Поддержка взаимодействия с унаследованными моделями графического интерфейса (т.е. Windows Forms, ActiveX и Win32 HWND). Например, можно встраивать специальные элементы управления Windows Forms в приложение WPF и наоборот.

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

Традиционные настольные приложения

Первая (и наиболее популярная) форма — это традиционная исполняемая сборка, которая запускается на локальной машине. Например, WPF можно использовать для построения текстового редактора, программы рисования или мультимедийной программы, такой как цифровой музыкальный проигрыватель, средство просмотра фотографий и т.п. Подобно любому другому настольному приложению, эти файлы *.ехе могут устанавливаться традиционными средствами (программами установки, пакетами WINDOWS INSTALLER и т.п.) или же посредством технологии ClickOnce, позволяющей распространять и устанавливать настольные приложения через удаленный веб-сервер. Говоря языком программиста, этот тип приложений WPF использует (как минимум) типы Window и Application в дополнение к ожидаемому набору диалоговых окон, панелей инструментов, панелей состояния, систем меню и прочих элементов пользовательского интерфейса. WPF позволяет строить как базовые, простые бизнес-приложения без каких-либо излишеств, так и встраивать средства подобного рода.

WPF-приложения на основе навигации

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

Несмотря на то что настольное приложение WPF может принимать веб-подобную схему навигации, помните, что это всего лишь вопрос дизайна пользовательского интерфейса. Само приложение остается в виде той же исполняемой сборки, запускаемой на настольной машине, и помимо внешнего сходства не имеет никакого ОТНОШЕНИЯ к веб-приложениям. Говоря языком программистов, эта разновидность WPF-приложений построена с использованием таких типов, как Application, Page, NavigationWindow и Frame.

Приложения ХВАР

WPF также позволяет строить приложения, которые могут размещаться внутри веб-браузера. Такая разновидность приложений WPF называется браузерными приложениями XAML, или ХВАР. Согласно этой модели, конечный пользователь переходит по заданному URL-адресу, указывающему на приложение ХВАР (которое представляет собой коллекцию объектов Page), затем прозрачно загружает и устанавливает его на локальной машине. В отличие от традиционной установки исполняемого приложения с помощью ClickOnce, программа ХВАР располагается непосредственно в браузере и принимает встроенную систему навигации браузера.

Преимущество технологии ХВАР состоит в том, она позволяет создавать сложные пользовательские интерфейсы, которые являются более выразительными, чем типичная веб-страница, построенная с помощью HTML и JavaScript. Объект Page в WPF может использовать те же службы, что и настольное приложение WPF, включая анимации, двух- и трехмерную графику, темы и т. п. По сути, веб-браузер в данном случае — просто контейнер объектов Page, а не средство отображения веб-страниц ASP.NET. Однако, учитывая, что объекты Page развертываются на удаленном веб-сервере, приложения ХВАР можно легко сопровождать в разных версиях и обновлять без необходимости поставки исполняемых сборок на пользовательские настольные машины.

Подобно традиционному веб-приложению, объекты Page можно легко обновлять на вебсервере, и пользователь всегда будет получать самую актуальную версию, обращаясь по заданному URL-адресу. Возможным недостатком этой разновидности программ WPF является то, что ХВАР могут работать только внутри веб-браузеров Microsoft Explorer или Firefox. При развертывании такого приложения в корпоративной сети компании совместимость браузеров не должна быть проблемой, так как системные администраторы могут просто диктовать выбор браузера, обязательного для установки на пользовательских машинах. Однако, открывая доступ к ХВАР-приложению внешнему миру, невозможно гарантировать, что каждый пользователь будет работать с браузером Internet Explorer или Firefox, а потому некоторые из них просто не смогут его просмотреть. Другая проблема состоит в том, что машина, которая выполняет ХВАР-приложение, должна иметь локальную установку платформы.NET, поскольку объекты Page пользуются теми же сборками.NET, что и традиционные приложения. Учитывая это, ХВАР-приложения ограничены только средами Windows и не могут просматриваться на системах, работающих под управлением Mac OS или Linux.





Дата публикования: 2015-02-18; Прочитано: 1287 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...