Поделиться через


Графика и мультимедиа

Windows Presentation Foundation (WPF) обеспечивает поддержку мультимедиа, векторной графики, анимации и композиции содержимого, делая простым для разработчиков создание интересных пользовательских интерфейсов и содержимого. Используя Microsoft Visual Studio, можно создавать векторную графику или сложную анимацию и интегрировать мультимедиа в приложения.

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

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

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

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

  • Новые графические и мультимедийные возможности в WPF 4
  • Графика и визуализация
  • Трехмерная визуализация
  • Анимация
  • Мультимедиа
  • Связанные разделы

Новые графические и мультимедийные возможности в WPF 4

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

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

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

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

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

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

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

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

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

Графика и визуализация

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

Двухмерные формы

WPF предоставляет библиотеку, часто используемую для векторного рисования форм 2-D, таких как прямоугольники и эллипсы, которые показаны на следующем рисунке.

Эллипсы и прямоугольники

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

<Window
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="Window1" >
  <Ellipse Fill="LightBlue" MouseUp="ellipseButton_MouseUp" />
</Window>
public partial class Window1  : Window
{
    void ellipseButton_MouseUp(object sender, MouseButtonEventArgs e)
    {
        MessageBox.Show("You clicked the ellipse!");
    }
}
Partial Public Class Window1
    Inherits Window
    Private Sub ellipseButton_MouseUp(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
        MessageBox.Show("You clicked the ellipse!")
    End Sub
End Class

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

Окно с текстом “you clicked the ellipse!”

Дополнительные сведения см. в разделе Обзор фигур и базовых средств рисования в приложении WPF. Вводный пример см. на веб-странице Shape Elements Sample.

Двухмерная геометрия

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

Различные способы использования Path

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

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

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

Иллюстрация различных кистей

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

Трехмерная визуализация

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

Снимок экрана примера Visual3D

Дополнительные сведения см. в разделе Обзор трехмерной графики. Вводный пример см. на веб-странице 3-D Solids Sample.

Анимация

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

Изображения анимированного куба

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

Мультимедиа

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

Изображения

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

Снимок экрана примера стилизации

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

Видео и аудио

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

<MediaElement Source="media\numbers.wmv" Width="450" Height="250" />

MediaElement способен воспроизводить видео и аудио, а также имеет достаточно широкие возможности для легкого создания пользовательских UIs.

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

См. также

Ссылки

System.Windows.Media

System.Windows.Media.Animation

System.Windows.Media.Media3D

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

Оптимизация производительности: двумерная графика и обработка изображений

Обзор фигур и базовых средств рисования в приложении WPF

Общие сведения о закраске сплошным цветом и градиентом

Рисование с помощью объектов Image, Drawing и Visual

Другие ресурсы

Анимация и расчет времени

3-D графика

Мультимедиа

Журнал изменений

Дата

Журнал

Причина

Декабрь 2010

Добавлен отсутствующий пример Visual Basic.

Исправление ошибки содержимого.