Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Windows Presentation Foundation ( WPF ) - это бесплатная графическая подсистема с открытым исходным кодом (аналогичная WinForms ), изначально разработанная Microsoft для визуализации пользовательских интерфейсов в приложениях на базе Windows. WPF, ранее известный как «Avalon», был первоначально выпущен как часть .NET Framework 3.0 в 2006 году. WPF использует DirectX и пытается предоставить согласованную модель программирования для создания приложений. Он отделяет пользовательский интерфейс от бизнес-логики и напоминает аналогичные объектные модели , ориентированные на XML , например, реализованные в XUL иSVG . [2]

Обзор [ править ]

Эта подсистема является частью .NET Framework 3.0 .

WPF использует XAML , язык на основе XML , для определения и связывания различных элементов интерфейса. [3] Приложения WPF могут быть развернуты как автономные настольные программы или размещены как встроенный объект на веб-сайте. WPF стремится унифицировать ряд общих элементов пользовательского интерфейса , таких как 2D / 3D-рендеринг, фиксированные и адаптивные документы , типографика , векторная графика , анимация во время выполнения и предварительно обработанные мультимедиа. Затем эти элементы могут быть связаны и ими можно управлять на основе различных событий, взаимодействий с пользователем и привязок данных . [4]

Библиотеки времени выполнения WPF включены во все версии Microsoft Windows, начиная с Windows Vista и Windows Server 2008 . Пользователи Windows XP SP2 / SP3 и Windows Server 2003 могут дополнительно установить необходимые библиотеки. [5] [6]

Microsoft Silverlight предоставляет функциональные возможности, которые в основном являются подмножеством WPF для предоставления встроенных веб-элементов управления, сопоставимых с Adobe Flash . 3D-рендеринг во время выполнения поддерживался в Silverlight, начиная с Silverlight 5. [7]

На мероприятии Microsoft Connect 4 декабря 2018 года Microsoft объявила о выпуске WPF как проекта с открытым исходным кодом на GitHub . Он выпущен под лицензией MIT . Windows Presentation Foundation стала доступна для проектов, ориентированных на платформу .NET Core , однако эта система не является кроссплатформенной и по-прежнему доступна только в Windows. [8] [9]

Особенности [ править ]

Direct3D [ править ]

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

Акцент WPF на векторной графике позволяет масштабировать большинство элементов управления и элементов без потери качества или пикселизации , тем самым повышая доступность. За исключением Silverlight, интеграция Direct3D позволяет оптимизировать 3D-рендеринг. Кроме того, интерактивный 2D-контент может быть изначально наложен на 3D-поверхности. [10] [11]

Связывание данных [ править ]

  • WPF имеет встроенный набор служб данных, позволяющий разработчикам приложений связывать данные в приложениях и управлять ими. Он поддерживает четыре типа привязки данных:
    1. один раз: когда клиент игнорирует обновления на сервере.
    2. один способ: когда клиент имеет доступ к данным только для чтения.
    3. два способа: где клиент может читать и записывать данные на сервер
    4. один способ источника: когда у клиента есть доступ только для записи к данным
  • Запросы LINQ , включая LINQ to XML , также могут выступать в качестве источников данных для привязки данных. [11]
  • Связывание данных не имеет отношения к их представлению. WPF предоставляет шаблоны данных для управления представлением данных.
  • Набор встроенных элементов управления предоставляется как часть WPF и содержит такие элементы, как кнопка, меню, сетки и список.
  • Свойства зависимости можно добавить к поведению или прикрепленным свойствам, чтобы добавить настраиваемые свойства привязки.
  • Мощная концепция WPF - это логическое отделение элемента управления от его внешнего вида.
    • Шаблон элемента управления можно переопределить, чтобы полностью изменить его внешний вид.
    • Элемент управления может содержать любой другой элемент управления или макет, что обеспечивает высокую степень управления композицией.
  • Особенности сохраненного режима графики. Перекрашивать дисплей не всегда необходимо.

Медиа услуги [ править ]

  • WPF предоставляет интегрированную систему для создания пользовательских интерфейсов с общими мультимедийными элементами, такими как векторные и растровые изображения, аудио и видео. WPF также предоставляет систему анимации и систему рендеринга 2D / 3D. [12]
  • WPF предоставляет примитивы форм для 2D-графики, а также встроенный набор кистей, перьев, геометрии и преобразований.
  • Возможности 3D в WPF - это подмножество полного набора функций, предоставляемого Direct3D. Однако WPF обеспечивает более тесную интеграцию с другими функциями, такими как пользовательские интерфейсы, документы и мультимедиа. Это позволяет иметь трехмерные пользовательские интерфейсы, трехмерные документы или трехмерные носители.
  • Поддерживаются наиболее распространенные форматы изображений: BMP, JPEG, PNG, TIFF, Windows Media Photo , GIF и ICON.
  • WPF по умолчанию поддерживает видеоформаты WMV , MPEG и некоторые файлы AVI , но поскольку под ним работает проигрыватель Windows Media , WPF может использовать все установленные для него кодеки.

Шаблоны [ править ]

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

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

  • В основе всех элементов управления пользовательского интерфейса в WPF лежит новая модель композиции. Каждый элемент управления состоит из одного или нескольких «визуальных элементов». Эти визуальные субэлементы превращаются в иерархическое визуальное дерево с помощью WPF и, в конечном итоге, обрабатываются графическим процессором. Поскольку элементы управления WPF не являются оболочками для стандартных элементов управления Windows, их пользовательский интерфейс можно радикально изменить, не влияя на нормальное поведение элемента управления.
  • Каждый элемент управления в WPF имеет шаблон по умолчанию, который определяет его визуальное дерево. Шаблон по умолчанию создается автором элемента управления и может быть заменен другими разработчиками и дизайнерами. Заменяющий пользовательский интерфейс помещается в ControlTemplate.

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

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

Анимация [ править ]

  • WPF поддерживает анимацию на основе времени, в отличие от подхода на основе кадров. Это отделяет скорость анимации от работы системы.
  • WPF поддерживает низкоуровневую анимацию с помощью таймеров и абстракции анимации более высокого уровня с помощью классов Animation.
    • Любое свойство элемента WPF можно анимировать, если оно зарегистрировано как свойство зависимости.
    • Классы анимации основаны на свойствах типа .NET, которые нужно анимировать. Например, изменение цвета элемента выполняется с помощью класса ColorAnimation, а анимация ширины элемента (который набирается как double) выполняется с помощью класса DoubleAnimation.
  • Анимации можно сгруппировать в Раскадровки.
    • Раскадровка - это основной способ запускать, останавливать, приостанавливать и иным образом управлять анимацией.
  • Анимация может запускаться внешними событиями, включая действия пользователя. [13]
  • Перерисовка сцены запускается по времени. [13]
  • Таймеры презентации инициализируются и управляются WPF. [13]
  • Эффекты анимации можно определить для каждого объекта, доступ к которым можно получить непосредственно из разметки XAML . [13]

Визуализация [ править ]

  • WPF может иметь собственный доступ к коду и API-интерфейсам Windows Imaging Component (WIC), что позволяет разработчикам писать кодеки изображений для своих конкретных форматов файлов изображений.

Эффекты [ править ]

  • WPF 3.0 предоставляет эффекты Bitmap (класс BitmapEffect), которые представляют собой растровые эффекты, применяемые к Visual. Эти растровые эффекты написаны в неуправляемом коде и заставляют визуализацию Visual выполняться на ЦП, а не на аппаратном ускорении с помощью графического процессора. BitmapEffects устарели в .NET 3.5 SP 1.
  • .NET Framework 3.5 с пакетом обновления 1 (SP1) добавляет класс Effect, который представляет собой эффект Pixel-Shader 2.0, который можно применить к визуальному элементу, что позволяет всей визуализации оставаться на графическом процессоре.
  • Класс Effect является расширяемым, что позволяет приложениям определять свои собственные эффекты шейдера.
  • Класс Effect в .NET 3.5 SP1 и 4.0 поставляется с двумя встроенными эффектами: BlurEffect и DropShadowEffect. Нет прямых замен для OuterGlowBitmapEffect, EmbossBitmapEffect и BevelBitmapEffect, которые ранее предоставлялись устаревшим классом BitmapEffect. Однако есть и другие способы достижения тех же результатов с классом Effect. Например, разработчики могут получить эффект внешнего свечения, используя DropShadowEffect с его ShadowDepth, установленным на 0.
  • Хотя класс BitmapEffect был помечен как устаревший в .Net Framework 3.5 с пакетом обновления 1 (SP1), его использование по-прежнему разрешалось, и эти эффекты по-прежнему отображались правильно. В .Net Framework 4.0 класс BitmapEffect был признан устаревшим - код, ссылающийся на BitmapEffect, по-прежнему строится без ошибок, но фактически не отображается никакого эффекта.

Документы [ править ]

  • WPF изначально поддерживает документы с разбивкой на страницы. Он предоставляет DocumentViewerкласс, предназначенный для чтения документов с фиксированным макетом. В FlowDocumentReaderклассе предлагает различные режимы просмотра , например, на странице или прокручивать , а также перекомпоновки текста , если область просмотра изменяется.
  • По умолчанию поддерживает документы XML Paper Specification .
  • Поддерживает чтение и запись документов с разбивкой на страницы с использованием Open Packaging Conventions .

Текст [ править ]

  • WPF включает ряд функций отрисовки текста, которые не были доступны в GDI . Это первый программный интерфейс Microsoft, предоставляющий разработчикам программного обеспечения возможности OpenType , поддерживающий шрифты OpenType, TrueType и OpenType CFF ( компактный формат шрифтов).
  • Поддержка типографских функций OpenType включает:
    • Лигатуры
    • Цифры старого стиля (например, части глифа располагаются ниже базовой линии текста)
    • качающаяся варианта
    • Фракции
    • Надстрочный и подстрочный индекс
    • Маленькие шапки
    • Обоснование на уровне строки
    • Рубиновые персонажи
    • Замена глифов
    • Несколько базовых показателей
    • Контекстные и стилистические альтернативы
    • Кернинг
  • WPF обрабатывает тексты в Юникоде и обрабатывает тексты независимо от глобальных настроек, таких как языковой стандарт системы. Кроме того, предусмотрены резервные механизмы, позволяющие обрабатывать направление письма (горизонтальное или вертикальное) независимо от имени шрифта; создание международных шрифтов из составных шрифтов с использованием группы одноязычных шрифтов; встраивание составных шрифтов. Информация о связывании шрифтов и резервных шрифтах хранится в переносимом XML-файле с использованием технологии составных шрифтов. [14] Файл XML имеет расширение .CompositeFont .
  • Текстовый движок WPF также поддерживает встроенную проверку орфографии . Он также поддерживает такие функции, как автоматический межстрочный интервал, улучшенный международный текст, перевод строки с указанием языка, расстановка переносов и выравнивание, эффекты растровых изображений, преобразования и текстовые эффекты, такие как тени, размытие, свечение, поворот и т. Д. Также поддерживается анимированный текст; это относится к анимированным глифам, а также к изменениям положения, размера, цвета и непрозрачности текста в реальном времени.
  • Визуализация текста WPF использует преимущества технологии ClearType , такие как субпиксельное позиционирование, естественная ширина продвижения, сглаживание в направлении Y, отрисовка текста с аппаратным ускорением , а также агрессивное кэширование предварительно визуализированного текста в видеопамяти. [15] ClearType нельзя отключить в старых приложениях WPF 3.x. [16] В отличие от ClearType в GDI или GDI +, WPF ClearType не привязывает глифы к пикселям по горизонтали, что приводит к потере контрастности, что не нравится некоторым пользователям. [17] Механизм визуализации текста был переписан в WPF 4.0, исправляя эту проблему. [18]
  • Степень кэширования глифов зависит от видеокарты. Карты DirectX 10 могут кэшировать глифы шрифтов в видеопамяти., затем выполните композицию (сборку глифов символов в правильном порядке с правильным интервалом), альфа-смешивание (применение сглаживания) и смешивание RGB (расчеты подпиксельного цвета ClearType) полностью аппаратно. Это означает, что только исходные глифы необходимо сохранять в видеопамяти один раз для каждого шрифта (по оценкам Microsoft, для этого потребуется 2 МБ видеопамяти на шрифт), а также другие операции, такие как отображение сглаженного текста поверх другой графики. - включая видео - также может быть выполнено без вычислительных усилий со стороны ЦП. Карты DirectX 9 могут кэшировать в памяти только глифы с альфа-смешиванием, что требует от ЦП обрабатывать композицию глифов и альфа-смешение перед передачей их на видеокарту.Кэширование этих частично визуализированных глифов требует значительно большего объема памяти (Microsoft оценивает 5 МБ на процесс). Карты, не поддерживающие DirectX 9, не имеют возможностей аппаратного ускорения рендеринга текста.

Совместимость [ править ]

  • Windows Forms также возможно за счет использования из ElementHostи WindowsFormsHostклассов.

Чтобы включить использование WinForms, разработчик выполняет это из своего кода WPF C #:

 System.Windows.Forms.Integration.WindowsFormsHost.EnableWindowsFormsInterop ();

Альтернативный ввод [ править ]

  • WPF поддерживает функции, связанные с цифровыми чернилами .
  • WPF 4.0 поддерживает мультисенсорный ввод в Windows 7 и более поздних версиях .

Доступность [ править ]

  • WPF поддерживает Microsoft UI Automation, позволяя разработчикам создавать доступные интерфейсы.
  • Этот API также позволяет автоматическим тестовым скриптам взаимодействовать с пользовательским интерфейсом. [19]

XAML [ править ]

После успеха языков разметки для веб - разработки, WPF представляет Extensible Application Markup Language ( XAML ; / г æ м əl / ), который основан на XML . XAML разработан как более эффективный метод разработки пользовательских интерфейсов приложений. [20] Конкретное преимущество XAML для WPF заключается в том, что XAML является полностью декларативным языком, позволяющим разработчику (или проектировщику) описывать поведение и интеграцию компонентов без использования процедурного программирования.. Хотя редко бывает, что все приложение будет полностью построено на XAML, внедрение XAML позволяет разработчикам приложений более эффективно участвовать в цикле разработки приложений. Использование XAML для разработки пользовательских интерфейсов также позволяет разделить модель и представление, что считается хорошим архитектурным принципом. В XAML элементы и атрибуты сопоставляются с классами и свойствами в базовых API.

Как и в веб-разработке, макеты и конкретные темы хорошо подходят для разметки, но XAML для них не требуется. Действительно, все элементы WPF могут быть закодированы на языке .NET ( C # , VB.NET ). В конечном итоге код XAML может быть скомпилирован в управляемую сборку так же, как и все языки .NET.

Архитектура [ править ]

Архитектура WPF. Синие элементы - это компоненты Windows; коричневые - это компоненты WPF.

Архитектура WPF охватывает как управляемый код, так и компоненты собственного кода . Однако публичный API доступен только через управляемый код. Хотя большая часть WPF находится в управляемом коде, механизм композиции, который отображает приложения WPF, является собственным компонентом. Он называется Media Integration Layer (MIL) и находится в milcore.dll. Он напрямую взаимодействует с DirectX и обеспечивает базовую поддержку 2D и 3D поверхностей, управляемое таймером манипулирование содержимым поверхности с целью раскрытия анимационных конструкций на более высоком уровне и компоновку.отдельные элементы приложения WPF в окончательную трехмерную «сцену», которая представляет пользовательский интерфейс приложения и отображает его на экране. [21] [22] окна рабочего стола менеджер также использует MIL для рабочего стола и окна композиции. [23] Медиа-кодеки также реализованы в виде неуправляемого кода и поставляются как windowscodecs.dll. [21] В управляемом мире PresentationCore ( presentationcore.dll) предоставляет управляемую оболочку для MIL и реализует основные службы для WPF, [21] включая систему свойств, которая знает о зависимостях между установщиками и потребителями свойства, а также отправку сообщений. система с помощьюDispatcherобъект для реализации специализированной системы событий и служб, которые могут реализовать систему макета, такую ​​как измерение элементов пользовательского интерфейса. [22] PresentationFramework ( presentationframework.dll) реализует функции представления конечного пользователя, включая макеты, зависящие от времени анимации на основе раскадровки и привязку данных. [22]

WPF предоставляет систему свойств для объектов, которые наследуются от DependencyObject, которая знает о зависимостях между потребителями свойства и может запускать действия на основе изменений свойств. Свойства могут быть либо жестко закодированными значениями, либо выражениями, которые представляют собой определенные выражения, которые приводят к результату. Однако в первоначальной версии набор поддерживаемых выражений закрыт. [22] Значение свойств также может быть унаследовано от родительских объектов. Свойства WPF поддерживают уведомления об изменениях , которые вызывают привязанное поведениевсякий раз, когда изменяется какое-либо свойство какого-либо элемента. Пользовательские поведения можно использовать для распространения уведомления об изменении свойства на набор объектов WPF. Это используется системой макета для запуска пересчета макета при изменении свойств, тем самым раскрывая декларативный стиль программирования для WPF, в соответствии с которым почти все, от установки цветов и позиций до анимации элементов, может быть достигнуто путем установки свойств. [22] Это позволяет писать приложения WPF на XAML , который является декларативным языком разметки, путем привязки ключевых слов и атрибутов непосредственно к классам и свойствам WPF. [24]

Элементы интерфейса приложения WPF поддерживаются как класс Visualобъектов. Визуальные объекты предоставляют управляемый интерфейс для дерева композиции, которое поддерживается уровнем интеграции мультимедиа (MIL). Каждый элемент WPF создает и добавляет в дерево один или несколько узлов композиции . Узлы композиции содержат инструкции по визуализации, такие как инструкции по вырезанию и преобразованию, а также другие визуальные атрибуты. Таким образом, все приложение представляется как набор узлов композиции, которые хранятся в буфере в системной памяти. Периодически MIL проходит по дереву и выполняет инструкции по рендерингу в каждом узле, таким образом компонуя каждый элемент на поверхности DirectX, которая затем отображается на экране. MIL использует алгоритм художника, где все компоненты визуализируются от задней части экрана к передней, что позволяет легко достигать сложных эффектов, таких как прозрачность. Этот процесс рендеринга аппаратно ускоряется с помощью графического процессора. [22] Дерево композиции кэшируется в MIL, создавая графику сохраненного режима , так что любые изменения в дереве композиции нужно только постепенно сообщать в MIL. Это также освобождает приложения от управления перерисовкой экрана; MIL может сделать это самостоятельно, поскольку имеет всю необходимую информацию. Анимации могут быть реализованы как изменения дерева композиции, запускаемые по времени. На видимой для пользователя стороне анимации указываются декларативно, путем установки некоторого эффекта анимации для некоторого элемента через свойство и указания продолжительности. Код программной частиобновляет определенные узлы дерева через Visualобъекты, чтобы представить как промежуточные состояния в указанные интервалы времени, так и конечное состояние элемента. MIL автоматически отобразит изменения в элементе. [25] Все приложения WPF начинаются с двух потоков: один для управления пользовательским интерфейсом, а другой фоновый поток для обработки отрисовки и перерисовки. [26] Рендеринг и перерисовка осуществляется самим WPF без какого-либо вмешательства разработчика. Поток пользовательского интерфейса содержит диспетчер (через экземпляр DispatcherObject), который поддерживает очередь операций пользовательского интерфейса, которые необходимо выполнить (в виде дереваVisualобъекты), отсортированные по приоритету. События пользовательского интерфейса, включая изменение свойства, влияющего на макет, и возникающие события взаимодействия с пользователем помещаются в очередь в диспетчере, который вызывает обработчики событий. Microsoft рекомендует, чтобы обработчики событий обновляли свойства только для отражения нового содержимого для реагирования приложения, при этом новое содержимое создается или извлекается в фоновом потоке. [26] Поток рендеринга выбирает копию визуального дерева и обходит дерево, вычисляя, какие компоненты будут видимы, и рендерит их на поверхности Direct3D. Поток рендеринга также кэширует визуальное дерево, поэтому необходимо сообщать только изменения в дереве, что приведет к обновлению только измененных пикселей. WPF поддерживает расширяемую модель макета. Планировка делится на два этапа: Измерение; и устроить . Мера фаза рекурсивно вызывает все элементы и определяет размер , который они будут принимать. В Аранжировки фазе, дочерние элементы рекурсивно расположены их родители, ссылаясь на алгоритм компоновки модуля макета в использовании. [22] [27]

Инструменты [ править ]

Для разработки приложений Windows Presentation Foundation доступен ряд средств разработки.

Инструменты Microsoft [ править ]

  • Microsoft Visual Studio - это IDE , ориентированная на разработчиков, которая содержит комбинацию редактора XAML и визуального конструктора WPF, начиная с Visual Studio 2008.
  • До Visual Studio 2008 надстройка конструктора WPF под кодовым названием Cider была исходной версией редактора WYSIWYG для создания окон, страниц и пользовательских элементов управления WPF. Он был доступен для Visual Studio 2005 как расширение Visual Studio 2005 для .NET Framework 3.0 CTP для первоначального выпуска WPF. [28]
  • В Microsoft Visual Studio Express 2008 и более поздних выпусках, особенно Visual C # Express и Visual Basic Express, также интегрирован конструктор WPF.
  • Microsoft Blend - это инструмент, ориентированный на дизайнеров, который предоставляет монтажную область для создания приложений WPF с 2D- и 3D-графикой, текстом и содержимым форм. Он генерирует XAML, который можно экспортировать в другие инструменты и совместно использовать решения (файлы sln) и форматы проектов (csproj, vbproj) с Microsoft Visual Studio.
  • Microsoft Expression Design - это инструмент растровой и 2D-векторной графики для экспорта в XAML .
  • XAMLPad - это облегченный инструмент, включенный в SDK .NET Framework. Он может создавать и отображать файлы XAML с использованием макета пользовательского интерфейса с разделенным экраном. Он также предоставляет древовидное представление разметки на панели.

Сторонние инструменты [ править ]

  • SharpDevelop , .NET IDE с открытым исходным кодом, включает возможности разработки приложений WPF. Это бесплатная альтернатива Visual Studio. [29]
  • PowerBuilder .NET от Sybase - это инструмент 4GL, который переводит код PowerBuilder, графические объекты в XAML и позволяет развертывать приложение в качестве цели WPF. [30]
  • Essential Studio for WPF от Syncfusion - это пакет из более чем 100 современных элементов управления пользовательским интерфейсом WPF для создания красивых, высокопроизводительных бизнес-приложений WPF. [31]

Развертывание [ править ]

Модель развертывания WPF предлагает варианты как автономных, так и браузерных приложений XAML (XBAP, произносится как «ex-bap»). Модель программирования для создания приложений любого типа аналогична.

Автономные приложения - это те, которые были локально установлены на компьютере с помощью такого программного обеспечения, как ClickOnce или Windows Installer (MSI), и которые запускаются на рабочем столе. Автономные приложения считаются полностью доверенными и имеют полный доступ к ресурсам компьютера.

Приложения браузера XAML ( XBAP ) - это программы, которые размещаются внутри веб-браузера . Приложения XBAP до .NET4 выполняются в среде песочницы с частичным доверием , им не предоставляется полный доступ к ресурсам компьютера, а также доступны не все функции WPF. Размещенная среда предназначена для защиты компьютера от вредоносных приложений. XBAP могут работать как полностью доверенные приложения в .NET 4 с полным доступом к ресурсам компьютера. Запуск XBAP с HTML-страницы или наоборот выполняется без проблем (без защиты или запроса на установку). Хотя создается впечатление, что приложение работает в браузере, на самом деле оно выполняется в исполняемом файле вне процесса, отличном от браузера.

Internet Explorer [ править ]

Начиная с выпуска .NET Framework 3.0, XBAP работали только в IE.

Поддержка Firefox [ править ]

С выпуском .NET Framework 3.5 SP1 XBAP также работает в Mozilla Firefox с использованием включенного расширения. 16 октября 2009 года Mozilla добавила плагин и расширение Firefox в свой черный список надстроек из-за удаленной эксплуатации серьезной уязвимости системы безопасности по согласованию с Microsoft. [32] Через два дня блок сняли. В Windows 7 плагин Firefox по умолчанию не запускается. [33] При переустановке .NET Framework 3.5 SP1 будет установлен плагин и добавлена ​​поддержка приложений XBAP в Firefox. [34] В качестве альтернативы, копирование библиотек подключаемых модулей из работающей установки Windows XP / Vista в каталог подключаемых модулей Mozilla Firefox также восстановит поддержку приложений XBAP. [34] Библиотеки подключаемых модулей WPF находятся в следующих каталогах (в зависимости от версии Framework):

3.5 [SP1]
C: \ Windows \ Microsoft.NET \ Framework \ v3.5 \ WPF \ NPWPF.dll
4.0
C: \ Windows \ Microsoft.NET \ Framework \ WPF \ NPWPF.dll

Microsoft Silverlight [ править ]

Silverlight (под кодовым названием WPF / E) - устаревший кроссбраузерный плагин для браузера, содержащий технологию на основе WPF (включая XAML) [35], которая предоставляла такие функции, как видео, векторная графика и анимация, для нескольких операционных систем, включая Windows 7 , Windows Vista. , Windows XP и Mac OS X . Microsoft разрешила ограниченному числу сторонних разработчиков работать над портами для определенных дистрибутивов Linux . [36] В частности, он был предоставлен как надстройка для Mozilla Firefox , Internet Explorer 6 и более поздних версий , Google Chrome 42 и более ранних версий иApple Safari .

.NET Micro Framework [ править ]

.NET Framework Micro включает в себя объектную модель GUI свободно основанный на WPF, хотя без поддержки XAML.

Ссылки [ править ]

  1. ^ "v5.0.4" . github.com . 2021-03-10 . Проверено 10 марта 2021 .
  2. ^ Натан, Адам (2006). Windows Presentation Foundation на свободе . Pearson Education. ISBN 9780132715621.
  3. ^ дотнет-бот. «Обзор XAML (WPF)» . msdn.microsoft.com . Проверено 31 марта 2018 года .
  4. ^ Продает, Крис; Гриффитс, Ян (2007). Программирование WPF: создание пользовательского интерфейса Windows с помощью Windows Presentation Foundation . "O'Reilly Media, Inc.". ISBN 9780596554798.
  5. ^ ".NET" . Microsoft . Проверено 31 марта 2018 года .
  6. ^ «Загрузить Microsoft .NET Framework 3.0» . microsoft.com . Проверено 31 марта 2018 года .
  7. ^ Учебные ресурсы Silverlight . Silverlight.net. Проверено 29 августа 2013.
  8. ^ Мартин, Джефф (4 декабря 2018 г.). «Microsoft Open Sources WPF, WinForms и WinUI» . InfoQ . Проверено 6 декабря 2018 .
  9. ^ Hanselman, Скотт (4 декабря 2018). «Объявление о переходе на открытый исходный код WPF, WinForms и WinUI» . Проверено 6 декабря 2018 .
  10. ^ «Знакомство с Windows Presentation Foundation» . msdn.microsoft.com . Проверено 31 марта 2018 года .
  11. ^ Б «Что нового в WPF 3.5? Вот пятнадцать Прохладный Особенности ...» Источник : 2007-10-14 .
  12. ^ Графика и мультимедиа . Msdn.Microsoft.com. Проверено 29 августа 2013.
  13. ^ a b c d "Обзор анимации" . MSDN . Проверено 14 октября 2007 .
  14. ^ «Типографика в Windows Presentation Foundation» . msdn.microsoft.com . Проверено 31 марта 2018 года .
  15. ^ дотнет-бот. «Обзор ClearType» . msdn.microsoft.com . Проверено 31 марта 2018 года .
  16. ^ «Отключить сглаживание» . social.msdn.microsoft.com . Проверено 31 марта 2018 года .
  17. ^ «Мои первые мысли о WPF с VS 2008 RTM и несколько вопросов» . social.msdn.microsoft.com . Проверено 31 марта 2018 года .
  18. ^ WPF 4 (VS 2010 и .NET 4.0 Series) - Блог ScottGu . Weblogs.asp.net. Проверено 29 августа 2013.
  19. ^ Xansky. «Обзор автоматизации пользовательского интерфейса» . msdn.microsoft.com . Проверено 31 марта 2018 года .
  20. ^ Макдональд, Мэтью (2010). Pro WPF в VB 2010: Windows Presentation Foundation в .NET 4 . Апресс. ISBN 9781430272403.
  21. ^ a b c Крис Андерсон. «Информация о MIL» . Проверено 14 октября 2007 .
  22. ^ Б с д е е г «Архитектура WPF» . MSDN . Проверено 14 октября 2007 .
  23. Шехтер, Грег (9 июня 2006 г.). «Как основные концепции и технологии WPF используются в DWM» . Блоги MSDN . Microsoft . Проверено 27 июля 2015 .
  24. ^ «Создать приложение WPF в Visual Studio» . docs.microsoft.com .
  25. ^ «Архитектура WPF» . docs.microsoft.com .
  26. ^ a b «Модель потоков» . MSDN . Проверено 14 октября 2007 .
  27. ^ «Система макета» . MSDN . Проверено 14 октября 2007 .
  28. ^ Получено с http://www.microsoft.com/en-au/download/details.aspx?id=23072 .
  29. ^ [email protected], Кристоф Вилле -. «Код SharpDevelop @ ic #» . icsharpcode.net . Проверено 31 марта 2018 года .
  30. ^ Средство разработки многофункциональных приложений / Среда декларативного программирования | PowerBuilder - Sybase Inc . Sybase.com. Проверено 29 августа 2013.
  31. ^ «Элементы управления WPF для ваших современных настольных приложений | Syncfusion» . www.syncfusion.com . Проверено 17 февраля 2021 .
  32. ^ «Помощник .NET Framework заблокирован для устранения уязвимости системы безопасности» . Проверено 17 октября 2009 .
  33. ^ «Дополнения Firefox для поддержки развертывания приложений .NET» . Проверено 7 сентября 2010 .
  34. ^ a b «Плагин Xbap для Firefox в Windows 7» . Проверено 29 сентября 2010 .
  35. ^ "Официальный сайт Microsoft ASP.NET" . Официальный сайт Microsoft ASP.NET . Проверено 31 марта 2018 года .
  36. ^ «Silverlight 1.0 выпущен и Silverlight для Linux объявлен» . Проверено 5 сентября 2007 .

Библиография [ править ]

  • Адам Натан : Windows Presentation Foundation Unleashed (WPF) , 21 декабря 2006 г., Sams Publishing, ISBN 0-672-32891-7 
  • Крис Андерсон : Essential Windows Presentation Foundation (WPF) , 11 апреля 2007 г., Addison-Wesley, ISBN 0-321-37447-9 
  • Крис Селлс, Ян Гриффитс: Программирование WPF , 28 августа 2007 г., O'Reilly Media, ISBN 0-596-51037-3 
  • Арлен Фельдман , Maxx Daymon : WPF в действии с Visual Studio 2008 , 21 ноября 2008 г., Manning Publications, ISBN 1-933988-22-3 

Внешние ссылки [ править ]

  • Библиотека MSDN: Windows Presentation Foundation
  • Богатая типографика с Windows Presentation Foundation
  • Обучение пользователей Windows Presentation Foundation