Windows Presentation Foundation - Windows Presentation Foundation

Windows Presentation Foundation (WPF)
Оригинальный автор (ы)Microsoft
Разработчики).NET Foundation
изначальный выпуск21 ноября 2006 г.; 14 лет назад (2006-11-21)
Стабильный выпуск
v5.0.0-rtm.20520.3 / 20 октября 2020 г.; 55 дней назад (2020-10-20)
Репозиторий Отредактируйте это в Викиданных
Написано вC #, C ++, C
Операционная системаМайкрософт Виндоус
Платформа.NET Framework,
.NET Core
ТипПрограммный фреймворк
ЛицензияЛицензия MIT
Интернет сайтдокументы.microsoft.com/ en-us/ dotnet/рамки/ wpf/индекс

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

Обзор

Диаграмма стека окон с тремя точками нуля
Этот подсистема является частью .NET Framework 3.0.

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

WPF библиотеки времени выполнения включены во все версии Майкрософт Виндоус поскольку Виндоус виста и Windows Server 2008. Пользователи Windows XP SP2 / SP3 и Windows Server 2003 при желании можно установить необходимые библиотеки.[4][5]

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

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

Функции

Direct3D

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

Windows Presentation Foundation (WPF) - это среда пользовательского интерфейса Microsoft для создания приложений с широким пользовательским интерфейсом. Это часть .NET framework 3.0 и выше. Акцент WPF на векторной графике позволяет масштабировать большинство элементов управления и элементов без потери качества или пикселизация, тем самым повышая доступность. За исключением Silverlight, интеграция Direct3D позволяет оптимизировать 3D-рендеринг. Кроме того, интерактивный 2D-контент может изначально накладываться на 3D-поверхности.[9][10]

Связывание данных

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

Медиа услуги

  • WPF предоставляет интегрированную систему для создания пользовательских интерфейсов с общими мультимедийными элементами, такими как векторные и растровые изображения, аудио и видео. WPF также предоставляет систему анимации и систему рендеринга 2D / 3D.[11]
  • WPF предоставляет примитивы форм для 2D-графики, а также встроенный набор кистей, перьев, геометрических форм и преобразований.
  • Возможности 3D в WPF являются подмножеством полного набора функций, предоставляемого Direct3D. Однако WPF обеспечивает более тесную интеграцию с другими функциями, такими как пользовательские интерфейсы, документы и мультимедиа. Это позволяет иметь трехмерные пользовательские интерфейсы, трехмерные документы или трехмерные носители.
  • Есть поддержка наиболее распространенных форматов изображений: BMP, JPEG, PNG, TIFF, Фото Windows Media, 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.
  • Анимации можно сгруппировать в Раскадровки.
    • Раскадровки - это основной способ запускать, останавливать, приостанавливать и иным образом управлять анимацией.
  • Анимация может запускаться внешними событиями, включая действия пользователя.[12]
  • Перерисовка сцены запускается по времени.[12]
  • Таймеры презентации инициализируются и управляются WPF.[12]
  • Эффекты анимации могут быть определены для каждого объекта, доступ к которым можно получить непосредственно из XAML разметка.[12]

Изображения

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

Последствия

  • WPF 3.0 предоставляет эффекты Bitmap (класс BitmapEffect), которые представляют собой растровые эффекты, применяемые к Visual. Эти растровые эффекты написаны в неуправляемом коде и заставляют визуализировать визуализацию на ЦП, а не на аппаратном ускорении графическим процессором. BitmapEffects устарели в .NET 3.5 SP 1.
  • .NET Framework 3.5 с пакетом обновления 1 (SP1) добавляет класс Effect, который представляет собой эффект Pixel-Shader 2.0, который можно применить к визуальному элементу, что позволяет всему рендерингу оставаться на GPU.
  • Класс 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 документы.
  • Поддерживает чтение и запись документов с разбивкой на страницы с помощью Соглашения об открытой упаковке.

Текст

  • WPF включает ряд функций отрисовки текста, которые не были доступны в GDI. Это первый программный интерфейс Microsoft, в котором OpenType функции для разработчиков программного обеспечения, поддерживающие OpenType, TrueType и OpenType CFF (Компактный формат шрифта ) шрифты.
  • Поддержка типографских функций OpenType включает:
  • WPF обрабатывает тексты в Unicode, и обрабатывает тексты независимо от глобальных настроек, таких как языковой стандарт системы. Кроме того, предусмотрены резервные механизмы, позволяющие обрабатывать направление письма (горизонтальное или вертикальное) независимо от имени шрифта; создание международных шрифтов из составных шрифтов с использованием группы одноязычных шрифтов; встраивание составных шрифтов. Информация о связывании шрифтов и резервных шрифтах хранится в переносимом XML-файле с использованием технологии составных шрифтов.[13] Файл XML имеет расширение .CompositeFont.
  • Текстовый движок WPF также поддерживает встроенный проверка орфографии. Он также поддерживает такие функции, как автоматический межстрочный интервал, улучшенный международный текст, перевод строки с указанием языка, перенос, а также выравнивание, эффекты растровых изображений, преобразования и текстовые эффекты, такие как тени, размытие, свечение, поворот и т. д. Также поддерживается анимированный текст; это относится к анимированным глифам, а также к изменениям положения, размера, цвета и непрозрачности текста в реальном времени.
  • Визуализация текста WPF использует преимущества ClearType технологии, такие как субпиксельное позиционирование, естественная ширина продвижения, сглаживание в направлении Y, с аппаратным ускорением рендеринг текста, а также агрессивное кеширование предварительно отрисованного текста в видеопамяти.[14] ClearType нельзя отключить в старых приложениях WPF 3.x.[15] В отличие от ClearType в GDI или GDI +, WPF ClearType не привязывает глифы к пикселям по горизонтали, что приводит к потере контрастности, что не нравится некоторым пользователям.[16] Механизм визуализации текста был переписан в WPF 4.0, исправив эту проблему.[17]
  • Степень кэширования глифов зависит от видеокарты. 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 также позволяет сценариям автоматизированного тестирования взаимодействовать с пользовательским интерфейсом.[18]

XAML

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

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

Архитектура

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

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

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

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

Инструменты

Для разработки приложений 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 ОСАГО для первоначального выпуска WPF.[27]
  • 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 это инструмент растровой и 2D-векторной графики для экспорта в XAML.
  • XAMLPad это легкий инструмент, включенный в .NET Framework SDK. Он может создавать и отображать файлы XAML с использованием макета пользовательского интерфейса с разделенным экраном. Он также обеспечивает представление разметки в виде дерева на панели.

Сторонние инструменты

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

Развертывание

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

Автономные приложения - это те, которые были локально установлены на компьютере с помощью такого программного обеспечения, как ClickOnce или же Установщик Windows (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.[30] Через два дня блок сняли. В Windows 7 плагин Firefox по умолчанию не запускается.[31] При переустановке .NET Framework 3.5 SP1 будет установлен плагин и добавлена ​​поддержка приложений XBAP в Firefox.[32] Как вариант, печатное копирование плагина DLL из работающей установки Windows XP / Vista в каталог плагинов Mozilla Firefox также восстановит поддержку приложений XBAP.[32] Библиотеки подключаемых модулей 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)[33] который предоставлял такие функции, как видео, векторная графика и анимация, для нескольких операционных систем, включая Windows 7, Виндоус виста, Windows XP, и Mac OS X. Microsoft разрешила ограниченному количеству сторонних разработчиков работать над портами наверняка. Linux раздачи.[34] В частности, он был предоставлен как надстройка для Mozilla Firefox, Internet Explorer 6 и выше, Гугл Хром 42 и ниже и Apple Safari.

.NET Micro Framework

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

Рекомендации

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

Библиография

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

внешняя ссылка