Windows Presentation Foundation

Wimdows Presentation Foundation (WPF) – новая графическая система отображения для Windows. WPF спроектирована для .NET под влиянием таких современных технологий отображения, как HTML и Flash, с использованием аппаратного ускорения. Она также представляет собой наиболее радикальное изменение в пользовательском интерфейсе Windows со времен Windows 95.
WPF включает в себя целый набор высокоуровневых служб, ориентированных на прикладных программистов. Ниже приведен список некоторых наиболее существенных изменений, которые принес с собой WPF в мир программирования Windows.

Web-подобная модель компоновки

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

Богатая модель рисования

Вместо рисования пикселей в WPF вы имеете дело с примитивами – базовыми фигурами, блоками текста и прочими графическими ингредиентами. Вы также имеете такие средства, как действительно прозрачные элементы управления, возможность складывать множество уровней с разной степенью прозрачности, а также встроенную поддержку трехмерной графики (3-D).

Богатая текстовая модель

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

Анимация как первоклассная программная концепция

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

Поддержка аудио и видео

Прежние инструментарии пользовательского интерфейса, такие как Windows Forms, были вестма ограничены в работе с мультимедиа. Но WPF включает поддержку воспроизведения любого аудио- или видеофайла, поддерживаемого Windows Media Player, позволяя вам воспроизводить более одного медиафайла одновременно. Что еще больше впечатляет – он предоставляет в ваше распоряжение инструменты для интеграции видеосодержимого в остальную часть вашего пользовательского интерфейса, позволяя выполнить такие экзотические трюки. Как размещение видеоокна на поверхности вращающегося трехмерного куба.

Стили и шаблоны

Стили позволяют стандартизировать форматирование и повторно использовать его по всему приложению. Шаблоны позволяют изменить способ отображения элементов, даже таких основополагающих как кнопки. Построение настраиваемого (skinned – с обложками) интерфейса еще никогда не было таким простым.

Команды

Большинство пользователей знают, что не имеет значения, откуда они инициируют команду Open (Открыть) – через меню или панель инструментов, конечный результат один и тот же. Теперь эта абстракция доступна вашему коду – вы можете определять прикладные команды в одном месте и привязывать их к множеству элементов управления.

Декларативный пользовательский интерфейс

Хотя вы можете конструировать окно WPF в коде, Visual Studio использует другой подход. Содержимое каждого окна сериализуется в виде XML-дескрипторов в документе XAML (Extensible Application Markup Language – Расширяемый язык разметки приложений). Преимущество состоит в том, что ваш пользовательский интерфейс полностью отделен от кода, и графические дизайнеры могут использовать профессиональные инструменты, чтобы редактировать ваши файлы XAML, улучшая внешний вид всего приложения.

Приложения на основе страниц

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

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

Уже много лет разработчики используют DirectX и OpenGL для построения трехмерных интерфейсов. Однако сложная программная модель и серьезные требования к видеокартам были причиной того, что трехмерное программирование оставалось в стороне от основного потока заказных приложений и программного обеспечения для бизнеса. WPF предлагает новую расширенную трехмерную модель, которая обещает в корне изменить ситуацию. Используя WPF, вы сможете строить сложные трехмерные сцены на основе понятного кода разметки. Вспомогательные классы предоставят проверенные операции вращения с помощью мыши, наряду с другими фундаментальными блоками. И почти любой компьютер, работающий под управлением Windows ХP и выше, сможет отображать трехмерное содержимое, благодаря способности WPF переходить к программной визуализации, когда поддержка со стороны видеокарты недостаточна.

Ресурсы по WPF

WPF на TechDays.ru
http://www.techdays.ru/Search.aspx?Tag=WPF

WPF на GotDotNet.Ru
http://www.gotdotnet.ru/technologies/wpf/

WPF в MSDN:
http://msdn.microsoft.com/wpf

WPF на CodePlex:
http://www.codeplex.com/wpf
http://www.codeplex.com/3DTools
http://www.codeplex.com/wpfthemes

Собрание блоггеров (Dr. WPF, John Smith, Beatriz Costa, etc.):
http://wpfdisciples.wordpress.com/

Ресурсы по оптимизации производительности
Optimizing WPF Application Performance
http://msdn.microsoft.com/en-us/library/aa970683.aspx

Performance Profiling Tools for WPF
http://windowsclient.net/wpf/perf/wpf-perf-tool.aspx

Примеры приложений
http://windowsclient.net/community/showcase.aspx
http://windowsclient.net/wpf/