Wpf приложения что это

WPF Series: Intro aka Введение

Года 3 назад, обсуждая Windows Forms с другом, я жаловался на то что неудобно использовать Windows Forms для вывода видео и музыки, а друг о том, что ему неудобно создавать свои контролы, а также формировать тулбары.

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

Год назад я много слышал о различных технологиях, появившихся в Net Framework 3.0. Я уже начал писать ранее на C#/VB.Net в контексте ASP.Net и почитав отзывы наиболее рьяных архитекторов, решил подождать.

Спустя полгода, а точнее прошлой весной, я слушал великолепные отзывы о технологии WPF от своего товарища, у него была одна проблема: 80% возможностей он так и не смог раскрыть, т.к. нормальная книга появилась летом (из тех, где подробно и довольно в доступной форме рассказывается о технологии), а до этого можно было почерпнуть информацию только из блогов, в коих, зачастую, многое упускалось из вида…

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

Что такое WPF?

В Windows с версии 3.11 присутствовал компонент вывода на экран GDI, позже его обновили, в Windows XP, если не ошибаюсь, уже используется GDI+.
Проблем от использования GDI+ в приложениях было и будет много, наряду с GDI была подсистема вывода 3D – DirectX, существовавшая с Windows 95. У нее были другие проблемы, но главной проблемы – сильной загрузки процессора для перерисовки моделей у нее не было.

Видимо решение у Microsoft зрело давно, раз они интегрировали WPF в Vista и Server 2008, которое, как мне кажется, и дало больший толчок для его использования, нежели всяческие семинары и статьи. Это, кстати дает дополнительный плюс, ведь упрощается модель редистрибуция приложений использующих 3 и 3.5 фреймворки.

Собственно, как я думаю, Вы уже догадались, WPF использует DirectX для вывода приложений на экран пользователя. Но тут и первые грабли, т.к. отображение форм у пользователей будет местами разниться, ведь мы, же не сговорились и не скупили продукцию 3D middle и high видеокарт.

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

a) Уровень 0: Нет hardware acceleration (внутреннего ускорения). Примерно DirectX 7.0
b) Уровень 1: Частичная hardware acceleration. Примерно DirectX 8.
c) Уровень 2: Все фичи задействованы. Примерно DirectX 9 и выше.

Как узнать какой у вас уровень или у пользователя?

Int renderingTier = (RenderCapability.Tier >> 16);
if (renderingTier == 0)
<
// 0 уровень
>

Однако разработчики не ограничились тем, что использовали другой уровень презентационной модели, а сделали еще много вещей:

a) Новая описательная модель формы и интерфейса в принципе — XAML
b) Новая модель Компоновки: имеется ввиду не компоновщик на уровне компилятора,
а новая модель включения одного в другое. Пример (в textbox вставить checkbox).
c) Новые сопутствующие контролы и методы для печати и медиа.
d) Новая модель привязки данных.
e) Новые возможности в формах.
f) Многое другое, что я еще не узнал.
g) Возможность почти безболезненно перенести проект в Web
(О XBAP Rich Web Application я расскажу, через пару статей).
h) Анимация.

Да называть все везде формами, наверное, неверно, ведь модель состоит из окон и страниц, страницы можно соответственно подгружать, что в веб-версии, что в обычной, через компонент Frame или через Canvas, например, в WPF/E (SilverLight).

Пример подгрузки страницы: Frame.Source = new Uri («Page1.xaml», UriKind.Relative);

В следующей статье я рассмотрю XAML. Вкратце пока скажу, что XAML
(eXtensible Application Markup Language) – это специальный описательный язык для
документов, окон и страниц, чем то, напоминает этакую помесь XML и HTML.

Ну и простой пример окна (только XAML):

Кстати, советую для тестирования разметки и небольших кусочков использовать не Visual Studio, а XamlPadX или XamlHack, или XamlPad.

В заключение, хотелось бы порекомендовать книги по WPF:

Написано очень добротно, неточностей перевода мало, рассказано почти обо всем, минус – то, что маленький тираж, и когда она только появилась, пришлось побегать и месяца полтора ждать.

«В целом книга написана очень хорошо, но, похоже, все-таки, местами слишком все подробно расписано и присутствуют неточности перевода» – это со слов человека (который упоминался в повествовании ранее), который ее читал.

Вот немного блогов, посвящённых WPF:

Дополнительные программы, для работы с WPF

(Спасибо хаброюзеру Vladek за помощь в дополнении поста и хаброюзеру XaocCPS за его рецензирование)

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

Источник

Введение в WPF

Особенности платформы WPF

Одной из важных особенностей является использование языка декларативной разметки интерфейса XAML, основанного на XML: вы можете создавать насыщенный графический интерфейс, используя или декларативное объявление интерфейса, или код на управляемых языках C#, VB.NET и F#, либо совмещать и то, и другое.

Преимущества WPF

Что вам, как разработчику, предлагает WPF?

Возможность декларативного определения графического интерфейса с помощью специального языка разметки XAML, основанном на xml и представляющем альтернативу программному созданию графики и элементов управления, а также возможность комбинировать XAML и C#/VB.NET

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

Новые возможности, которых сложно было достичь в WinForms, например, создание трехмерных моделей, привязка данных, использование таких элементов, как стили, шаблоны, темы и др.

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

Создание приложений под множество ОС семейства Windows

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

Архитектура WPF

Схематически архитектуру WPF можно представить следующим образом:

Wpf приложения что это. 1.4. Wpf приложения что это фото. Wpf приложения что это-1.4. картинка Wpf приложения что это. картинка 1.4.

PresentationFramework.dll : содержит все основные реализации компонентов и элементов управления, которые можно использовать при построении графического интерфейса

PresentationCore.dll : содержит все базовые типы для большинства классов из PresentationFramework.dll

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

Unmanaged API используется для интеграции вышележащего уровня с DirectX:

milcore.dll : собственно обеспечивает интеграцию компонентов WPF с DirectX. Данный компонент написан на неуправляемом коде (С/С++) для взаимодействия с DirectX.

WindowsCodecs.dll : библиотека, которая предоставляет низкоуровневую поддержку для изображений в WPF

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

Источник

Разработка приложений

Windows Presentation Foundation (WPF) — это платформа представления, с помощью которой можно разрабатывать приложения следующих типов:

автономные приложения (традиционные Windows-приложения, созданные как исполняемые сборки, которые устанавливаются и запускаются с клиентского компьютера);

XAML-приложения браузера (XBAP) (приложения, состоящие из страниц навигации, созданные как исполняемые сборки, которые размещаются в веб-браузерах, таких как Microsoft Internet Explorer и Mozilla Firefox);

пользовательские библиотеки элементов управления (неисполняемые сборки, содержащие многократно используемые элементы управления);

библиотеки классов (неисполняемые сборки, содержащие многократно используемые классы).

Использование типов WPF в службе Windows настоятельно не рекомендуется. При попытке использовать эти возможности в службе Windows они могут не работать должным образом.

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

Управление приложениями

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

создание и управление общей инфраструктурой приложений (включая создание метода точки входа и цикл обработки сообщений Windows для получения системных и входящих сообщений);

отслеживание и взаимодействие со временем существования приложения;

извлечение и обработка параметров командной строки;

совместное использование свойств области приложения и ресурсов UI;

обнаружение и обработка необработанных исключений;

возврат кодов завершения;

управление окнами в автономных приложениях;

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

Эти возможности реализуются с помощью класса Application, который добавляется в приложения с помощью определения приложения.

Ресурсы, Содержимое и Файлы данных WPF-приложения

Ключевым компонентом поддержки неисполняемых файлов данных WPF является возможность их идентификации и загрузки с помощью уникального универсального кода ресурса (URI). Дополнительные сведения см. в разделе URI типа «pack» в WPF.

Окна и диалоговые окна

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

создание и отображение окон;

установка отношений владельца/собственного окна;

настройка внешнего вида окна (например, размер, расположение, значки, текст заголовка, границы);

отслеживание и взаимодействие со временем существования окна.

Дополнительные сведения см. в разделе Общие сведения об окнах WPF.

Window поддерживает возможность создать особый тип окна, известный как диалоговое окно. Можно создавать модальные и немодальные типы диалоговых окон.

Для удобства работы, обеспечения преимуществ повторного использования кода и согласованности пользовательского интерфейса в разных приложениях WPF предоставляет три стандартных диалоговых окна Windows: OpenFileDialog, SaveFileDialog и PrintDialog.

Окно сообщения представляет собой особый тип диалогового окна для отображения важной текстовой информации для пользователей и задания простых вопросов (да, нет, ОК, отмена). Класс MessageBox используется для создания и отображения окон сообщений.

Дополнительные сведения см. в разделе Общие сведения о диалоговых окнах.

Навигация

WPF поддерживает навигацию в интернет-стиле с использованием страниц (Page) и гиперссылок (Hyperlink). Навигация может быть реализована разнообразными способами, включая следующие:

автономные страницы, размещенные в веб-браузере;

страницы, скомпилированные в приложение XBAP, которое размещается в веб-браузере;

страницы, скомпилированные в автономном приложении и размещенные в окне навигации (NavigationWindow);

страницы, размещенные во фрейме (Frame), который может располагаться на отдельной странице или на странице, скомпилированной в приложение XBAP или в автономное приложение.

Для упрощения навигации WPF реализует следующее:

совместно используемый механизм навигации NavigationService для обработки запросов навигации, который используют Frame, NavigationWindow и приложения XBAP для поддержки навигации внутри приложения;

методы навигации для инициирования навигации;

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

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

Hosting

Приложения XBAP могут размещаться в Microsoft Internet Explorer или Firefox. Каждая модель размещения имеет свой собственный набор разрешений и ограничений, которые рассматриваются в разделе Размещение.

Построение и Развертывание

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

В зависимости от типа приложения вы можете выбрать один или несколько параметров развертывания. Дополнительные сведения см. в разделе Развертывание приложений WPF.

Источник

Существует две реализации WPF:

Версия .NET (это руководство).

Этот обзор предназначен для новичков: в нем рассматриваются ключевые возможности и понятия WPF. Сведения о создании приложения WPF см. в разделе Учебник: создание нового приложения WPF.

Программирование с помощью WPF

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

Разметка и код программной части

WPF позволяет разрабатывать приложения, используя как разметку, так и код программной части, что привычно для разработчиков на ASP.NET. Разметка XAML обычно используется для определения внешнего вида приложения, а управляемые языки программирования (код программной части) — для реализации его поведения. Такое разделение внешнего вида и поведения имеет ряд преимуществ.

Затраты на разработку и обслуживание снижаются, так как разметка, определяющая внешний вид, не связана тесно с кодом, обуславливающим поведение.

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

разметку

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

В приведенном ниже примере XAML используется для определения внешнего вида окна, содержащего одну кнопку.

На рисунке ниже показан пользовательский интерфейс, который определяется кодом XAML из предыдущего примера.

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

Файл с кодом программной части

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

Метод InitializeComponent вызывается из конструктора класса кода программной части для слияния пользовательского интерфейса, определенного в разметке, с классом кода программной части. ( InitializeComponent создается при построении приложения, поэтому реализовывать его вручную не нужно.) Сочетание x:Class и InitializeComponent гарантирует правильную инициализацию реализации при создании.

На рисунке ниже показан результат нажатия на кнопку.

Ввод данных и команды

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

Приложения часто предъявляют сложные требования к вводу. WPF предоставляет систему команд, которая отделяет действия по вводу данных пользователем от кода, реагирующего на эти действия. Система команд позволяет нескольким источникам вызывать одну и ту же логику команд. Например, рассмотрим распространенные операции редактирования, используемые различными приложениями: Копировать, Вырезать и Вставить. Эти операции можно вызывать путем выполнения различных действий пользователя, если они реализованы с помощью команд.

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

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

Более подробную информацию см. в разделе Элементы управления.

Функциональная классификация элементов управления WPF

Ниже перечислены встроенные элементы управления WPF.

Вывод и выбор дат: Calendar и DatePicker.

Источник

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

Платформа Windows Presentation Foundation (WPF) позволяет создавать клиентские приложения для настольных систем Windows с привлекательным пользовательским интерфейсом.

Wpf приложения что это. wpfintrofigure24. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure24. картинка Wpf приложения что это. картинка wpfintrofigure24.

Этот обзор предназначен для новичков: в нем рассматриваются ключевые возможности и понятия WPF.

Программирование с помощью WPF

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

Разметка и код программной части

WPF позволяет разрабатывать приложения, используя как разметку, так и код программной части, что привычно для разработчиков на ASP.NET. Разметка XAML обычно используется для определения внешнего вида приложения, а управляемые языки программирования (код программной части) — для реализации его поведения. Такое разделение внешнего вида и поведения имеет ряд преимуществ.

Затраты на разработку и обслуживание снижаются, так как разметка, определяющая внешний вид, не связана тесно с кодом, обуславливающим поведение.

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

разметку

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

В приведенном ниже примере XAML используется для определения внешнего вида окна, содержащего одну кнопку.

На рисунке ниже показан пользовательский интерфейс, который определяется кодом XAML из предыдущего примера.

Wpf приложения что это. wpfintrofigure10. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure10. картинка Wpf приложения что это. картинка wpfintrofigure10.

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

Файл с кодом программной части

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

На рисунке ниже показан результат нажатия на кнопку.

Wpf приложения что это. wpfintrofigure25. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure25. картинка Wpf приложения что это. картинка wpfintrofigure25.

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

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

Более подробную информацию см. в разделе Элементы управления.

Функциональная классификация элементов управления WPF

Ниже перечислены встроенные элементы управления WPF.

Вывод и выбор дат: Calendar и DatePicker.

Рукописный ввод: InkCanvas и InkPresenter.

Ввод данных и команды

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

Макет

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

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

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

Canvas: дочерние элементы управления предоставляют собственный макет.

DockPanel: дочерние элементы управления выравниваются по краям панели.

Grid: дочерние элементы управления упорядочиваются по строкам и столбцам.

StackPanel: дочерние элементы управления располагаются с наложением по вертикали или по горизонтали.

VirtualizingStackPanel: дочерние элементы управления виртуализируются и располагаются в линию по горизонтали или по вертикали.

WrapPanel: дочерние элементы управления располагаются в порядке слева направо и переносятся на следующую строку, если не помещаются в текущей.

В приведенном ниже примере элемент управления DockPanel используется для размещения нескольких элементов управления TextBox.

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

На рисунке ниже показан результат использования разметки XAML из предыдущего примера.

Wpf приложения что это. wpfintrofigure11. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure11. картинка Wpf приложения что это. картинка wpfintrofigure11.

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

копирование данных из управляемых объектов в элементы управления для их отображения и редактирования;

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

Wpf приложения что это. databindingmostbasic. Wpf приложения что это фото. Wpf приложения что это-databindingmostbasic. картинка Wpf приложения что это. картинка databindingmostbasic.

Следующая разметка привязывает объект TextBox к экземпляру пользовательского Person объекта:

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

Более подробную информацию см. в разделе Общие сведения о привязке данных.

Графика

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

Независимость графики от разрешения и устройства. Основной единицей измерения в графической системе WPF является аппаратно-независимый пиксель, размер которого составляет 1/96 дюйма вне зависимости от разрешения экрана. Это создает основу для независимой от разрешения и аппаратной платформы отрисовки. Каждый аппаратно-независимый пиксель автоматически масштабируется в соответствии с заданным в системе количеством точек на дюйм (DPI).

Повышение точности. Система координат WPF основана на числах двойной точности с плавающей запятой, а не числах одинарной точности. Значения преобразования и прозрачности также выражаются числами двойной точности. Платформа WPF также поддерживает широкую цветовую палитру (scRGB) и имеет встроенную поддержку управления входными данными из разных цветовых схем.

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

Аппаратное ускорение. Система графики WPF использует возможности графического оборудования, чтобы снизить нагрузку на ЦП.

Двумерные фигуры

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

Wpf приложения что это. wpfintrofigure4. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure4. картинка Wpf приложения что это. картинка wpfintrofigure4.

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

На следующем рисунке показано, что создается в приведенном выше коде.

Wpf приложения что это. wpfintrofigure12. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure12. картинка Wpf приложения что это. картинка wpfintrofigure12.

Двумерные геометрические объекты

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

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

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

Wpf приложения что это. wpfintrofigure5. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure5. картинка Wpf приложения что это. картинка wpfintrofigure5.

Дополнительные сведения см. в разделе Общие сведения о классе Geometry.

Двумерные эффекты

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

Wpf приложения что это. wpfintrofigure6. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure6. картинка Wpf приложения что это. картинка wpfintrofigure6.

Дополнительные сведения см. в разделе Общие сведения о кистях WPF.

Трехмерная отрисовка

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

Wpf приложения что это. wpfintrofigure13. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure13. картинка Wpf приложения что это. картинка wpfintrofigure13.

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

Анимация

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

Wpf приложения что это. wpfintrofigure7. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure7. картинка Wpf приложения что это. картинка wpfintrofigure7.

Дополнительные сведения см. в разделе Общие сведения об эффектах анимации.

Мультимедиа

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

Изображения

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

Wpf приложения что это. wpfintrofigure8. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure8. картинка Wpf приложения что это. картинка wpfintrofigure8.

Дополнительные сведения см. в разделе Общие сведения о работе с образами.

Видео и звук

Элемент управления MediaElement позволяет воспроизводить как видео, так и звук и достаточно гибок для того, чтобы служить основой для пользовательского мультимедиапроигрывателя. Следующая разметка XAML реализует проигрыватель мультимедиа:

В окне на следующем рисунке показан MediaElement элемент управления в действии:

Wpf приложения что это. wpfintrofigure1. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure1. картинка Wpf приложения что это. картинка wpfintrofigure1.

Дополнительные сведения см. в разделе Графика и мультимедиа.

Текст и типографическая разметка

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

поддержка шрифтов OpenType;

высокая производительность за счет аппаратного ускорения;

интеграция текста с мультимедиа, графикой и анимацией;

поддержка международных шрифтов и резервных механизмов.

В качестве демонстрации интеграции текста с графикой на рисунке ниже показано применение эффектов оформления текста.

Wpf приложения что это. wpfintrofigure23. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure23. картинка Wpf приложения что это. картинка wpfintrofigure23.

Настройка приложений WPF

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

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

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

Модель содержимого

На следующем рисунке показан результат.

Wpf приложения что это. wpfintrofigure21. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure21. картинка Wpf приложения что это. картинка wpfintrofigure21.

На следующем рисунке показано содержимое этой кнопки:

Wpf приложения что это. wpfintrofigure22. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure22. картинка Wpf приложения что это. картинка wpfintrofigure22.

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

Триггеры

Хотя основным назначением разметки XAML является определение внешнего вида приложения, ее также можно использовать для реализации некоторых аспектов поведения приложения. Один из примеров — изменение внешнего вида приложения с помощью триггеров при выполнении пользователем определенных действий. Дополнительные сведения см. в разделе Стили и шаблоны.

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

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

В следующем примере показано, как изменить внешний вид с Button помощью ControlTemplate :

Wpf приложения что это. wpfintrofigure2. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure2. картинка Wpf приложения что это. картинка wpfintrofigure2.

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

Wpf приложения что это. wpfintrofigure18. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure18. картинка Wpf приложения что это. картинка wpfintrofigure18.

На следующем рисунке показан результат выполнения этого кода:

Wpf приложения что это. wpfintrofigure19. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure19. картинка Wpf приложения что это. картинка wpfintrofigure19.

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

Дополнительные сведения см. в разделе Общие сведения о шаблонах данных.

Стили

Так как этот стиль предназначен для всех элементов управления Button, он автоматически применяется ко всем кнопкам в окне, как показано на рисунке ниже.

Wpf приложения что это. wpfintrofigure20. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure20. картинка Wpf приложения что это. картинка wpfintrofigure20.

Дополнительные сведения см. в разделе Стили и шаблоны.

Ресурсы

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

В приведенном ниже примере определяется общий цвет фона для элементов управления Button и Label.

Отдельный элемент управления (с использованием наследуемого свойства System.Windows.FrameworkElement.Resources ).

Разнообразие областей действия обеспечивает гибкость в отношении способов определения ресурсов и предоставления доступа к ним.

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

Ресурсы и словари ресурсов лежат в основе реализованной в WPF поддержки тем и обложек.

Дополнительные сведения см. в статье о ресурсах DSC.

Пользовательские элементы управления

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

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

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

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

Модель пользовательского элемента управления. Пользовательский элемент управления наследуется от UserControl и составляется из одного или нескольких других элементов управления.

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

В следующем примере показан настраиваемый числовой элемент управления «вверх/вниз», производный от UserControl :

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

На следующем рисунке показан NumericUpDown элемент управления, размещенный в Window :

Wpf приложения что это. wpfintrofigure3. Wpf приложения что это фото. Wpf приложения что это-wpfintrofigure3. картинка Wpf приложения что это. картинка wpfintrofigure3.

Дополнительные сведения о пользовательских элементах управления см. в разделе Общие сведения о разработке управления.

Рекомендации по использованию WPF

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

Следующие шаги

Мы рассмотрели основные возможности WPF. Теперь пора приступить к созданию первого приложения WPF.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *