Главная страница
Навигация по странице:

  • Независимость от разрешения экрана

  • Аппаратное ускорение графики

  • PresentationFramework.dll

  • PresentationCore.dll

  • Структура проекта WPF Для создания проекта нужно открыть Visual Studio Express 2015 и в меню File (Файл)

  • Введение в WPF. Введение в wpf особенности платформы wpf


    Скачать 338.89 Kb.
    НазваниеВведение в wpf особенности платформы wpf
    АнкорВведение в WPF
    Дата07.09.2022
    Размер338.89 Kb.
    Формат файлаdocx
    Имя файлаВведение в WPF.docx
    ТипДокументы
    #666791

    Введение в WPF

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

    Технология WPF (Windows Presentation Foundation) является часть экосистемы платформы .NET и представляет собой подсистему для построения графических интерфейсов.

    Если при создании традиционных приложений на основе WinForms за отрисовку элементов управления и графики отвечали такие части ОС Windows, как User32 и GDI+, то приложения WPF основаны на DirectX. В этом состоит ключевая особенность рендеринга графики в WPF: используя WPF, значительная часть работы по отрисовке графики, как простейших кнопочек, так и сложных 3D-моделей, ложиться на графический процессор на видеокарте, что также позволяет воспользоваться аппаратным ускорением графики.

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

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

    • Использование традиционных языков .NET-платформы - C# и VB.NET для создания логики приложения

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

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

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

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

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

    • Аппаратное ускорение графики - вне зависимости от того, работаете ли вы с 2D или 3D, графикой или текстом, все компоненты приложения транслируются в объекты, понятные Direct3D, и затем визуализируются с помощью процессора на видеокарте, что повышает производительность, делает графику более плавной.

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

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

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

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



    Как видно на схеме, WPF разбивается на два уровня: managed API и unmanaged API (уровень интеграции с DirectX). Managed API (управляемый API-интерфейс) содержит код, исполняемый под управлением общеязыковой среды выполнения .NET - Common Language Runtime. Этот API описывает основной функционал платформы WPF и состоит из следующих компонентов:

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

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

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

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

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

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

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

    Здесь также на одном уровне находится библиотека user32.dll. И хотя выше говорилось, что WPF не использует эту библиотеку для рендеринга и визуализации, однако для ряда вычислительных задач (не включающих визуализацию) данная библиотека продолжает использоваться.
    Структура проекта WPF

    Для создания проекта нужно открыть Visual Studio Express 2015 и в меню File (Файл) выбрать пункт New (Создать) -> Project... (Проект...). Откроется диалоговое окно создания проекта, в котором нужно выбрать шаблон WPF Application. Visual Studio создаст новый проект



    По умолчанию студия открывает создает и открывает два файла: файл декларативной разметки интерфейса MainWindow.xaml и файл связанного с разметкой кода MainWindow.xaml.cs. Файл MainWindow.xaml имеет два представления: визуальное - в режиме WYSIWIG отображает весь графический интерфейс данного окна приложения, и под ним декларативное объявление интерфейса в XAML. Если изменим декларативную разметку, например, определим там кнопку, то эти изменения отображаться в визуальном представлении.

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

    Далее в структуре определены файл разметки MainWindow.xaml и файл связанного кода MainWindow.xaml.cs. Файл MainWindow.xaml и представляет определение окна приложение, которое открывается при запуске.


    написать администратору сайта