Новые возможности WPF версии 4

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

В этом разделе содержатся следующие подразделы.

  • Новые элементы управления

  • Диспетчер визуальных состояний

  • Сенсорный ввод и манипуляции

  • Графика и анимация

  • Текст

  • Привязка

  • Приложения браузера XAML

  • WPF и Windows

  • Конструктор WPF и Silverlight

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

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

Диспетчер визуальных состояний

WPF обеспечивает улучшенную поддержку изменения визуальных состояний в шаблоне ControlTemplate. Добавлены класс VisualStateManager и вспомогательные классы, чтобы предоставить возможность использования таких средств, как Microsoft Expression Blend, для определения внешнего вида элемента управления в соответствии с его визуальным состоянием. Например, можно определить внешний вид элемента управления Button, когда он находится в состоянии Pressed. Дополнительные сведения о создании шаблона ControlTemplate, который использует VisualStateManager для существующего элемента управления, см. в разделе Настройка внешнего вида существующего элемента управления путем создания объекта ControlTemplate. Сведения о создании нового элемента управления, который использует VisualStateManager, см. в разделе Создание элемента управления с настраиваемым внешним видом.

ПримечаниеПримечание

Элементы могут воспользоваться преимуществом VisualStateManager вне шаблона ControlTemplate с помощью метода GoToElementState.

Сенсорный ввод и манипуляции

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

Графика и анимация

Некоторые изменения также коснулись графики и анимации.

  • Округление макета

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

  • Кэшированная композиция

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

  • Поддержка построителя текстуры 3

    WPF 4 строится на основе поддержки ShaderEffect, введенной в WPF 3.5 с пакетом обновления 1 путем разрешения приложениям записывать эффекты с помощью построителя текстуры (PS) версии 3.0. Модель построителя текстуры версии 3.0 более сложная, чем построитель текстуры версии 2.0, что позволяет использовать гораздо больше эффектов на поддерживаемом оборудовании.

  • Функции плавности

    Можно усовершенствовать анимацию с помощью функции плавности, что дает дополнительный контроль поведения анимации. Например, можно применить ElasticEase к анимации, чтобы придать анимации быстроту. Дополнительные сведения см. в документации, посвященной типам плавности в пространстве имен System.Windows.Media.Animation.

Текст

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

  • Новый стек визуализации текста

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

  • Настройка выделения и курсора

    Теперь можно задавать кисть, рисующую выделение и курсор для элементов управления, предназначенных для ввода и чтения, таких как TextBox RichTextBox и FlowDocumentReader. В TextBoxBase появились два новых свойства:

    • SelectionBrush, которое позволяет создавать кисть для выделения выбранного текста;

    • CaretBrush, которое позволяет изменить кисть, рисующую курсор.

Привязка

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

  • Привязка к командам в InputBinding

    Можно привязать свойство Command класса InputBinding к экземпляру, заданному в коде. Следующие свойства являются свойствами зависимостей, поэтому они могут быть целями привязки:

    Классы InputBinding, MouseBinding и KeyBinding получают контекст данных от владельца FrameworkElement.

  • Привязка к динамическим объектам

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

  • Текстовая цепочка с возможностью привязки

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

Приложения браузера XAML

В XAML browser applications (XBAPs) добавлены две функции.

  • Взаимодействие скриптов HTML-XBAP

    Теперь можно взаимодействовать с веб-страницей, содержащей XBAP, когда приложение находится во фрейме HTML. XBAP может получать глубокий доступ к доменной объектной модели (DOM) HTML и может обрабатывать события DOM. Дополнительные сведения см. в разделе BrowserInteropHelper.HostScript.

  • Развертывание XBAP с полным доверием

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

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

WPF и Windows

Панель задач Windows 7 предоставляет улучшенную функциональность, позволяющую использовать кнопку панели задач для передачи состояния пользователю и предоставления общих задач. Новые типы в пространстве имен System.Windows.Shell предоставляют программы-оболочки для функциональности в панели задач Windows 7 и управляют данными, переданными в оболочку Windows. Например, тип JumpList позволяет работать со списками переходов, а тип TaskbarItemInfo – с эскизами панели задач.

Диалоговые окна WPF в Windows 7 и в Windows Vista теперь поддерживают внешний вид стилей Windows 7 и Windows Vista, включая пользовательские размещения. Дополнительные сведения см. в описании класса FileDialogCustomPlace.

Конструктор WPF и Silverlight

В Visual Studio 2010 внесены значительные усовершенствования конструктора, помогающие создавать приложения WPF и Silverlight.

  • Улучшенная поддержка Silverlight

    В Visual Studio 2008 можно было устанавливать инструменты Silverlight для создания приложений Silverlight в Visual Studio. Однако поддержка конструктора для проектов Silverlight была ограничена. В Visual Studio 2010 поддержка конструктора для проектов Silverlight и WPF одинакова. Например, в проектах Silverlight теперь можно выбирать и располагать элементы в рабочей области конструирования с помощью мыши.

  • Поддержка многоплатформенных версий

    Элементы управления времени разработки в Visual Studio 2008 были ориентированы только на последнюю версию платформы WPF. В Visual Studio 2010 поддержка распространена на несколько платформ, включая поддержку времени разработки для WPF 3.5, WPF 4, Silverlight 3, Silverlight 4 и будущих выпусков платформы. Поскольку для всех этих платформ используется один и тот же API расширяемости, то автор элементов управления времени разработки может легко написать одно решение и использовать его в средах выполнения элементов управления всех платформ.

  • Визуальная привязка данных

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

  • Автоматическая разметка

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

  • Усовершенствование редактирования свойства

    Окно свойств теперь включает возможность визуального создания и изменения ресурсов Brush.

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

См. также

Основные понятия

Новые возможности .NET Framework 4