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

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

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

Примечание.

Использование типов WPF в службе Windows настоятельно не рекомендуется. При попытке использовать типы WPF в службе Windows, службы могут не работать должным образом.

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

В части графики и анимации были сделаны некоторые изменения.

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

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

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

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

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

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

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

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

Графика и отрисовка

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

Двумерные фигуры

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

Diagram showing ellipses and rectangles.

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

<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://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 и кода.

A message box saying

Более подробную информацию см. в разделе Обзор фигур и базовых средств рисования в приложении WPF. Вводный пример см. в разделе Пример элементов-фигур.

Двумерные геометрические объекты

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

Screenshot showing how you can use geometries to create shapes.

Более подробную информацию см. в разделе Общие сведения о классе Geometry. Вводный пример в разделе Примеры геометрических объектов.

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

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

Illustration showing the different WPF brushes and paint elements.

Более подробную информацию см. в разделе Общие сведения о кистях WPF. Вводный пример см. в разделе Пример использования кистей.

Трехмерная отрисовка

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

Screenshot of a sample showing 3D shapes with different textures.

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

Анимация

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

Screenshot of an animated cube.

Более подробную информацию см. в разделе Общие сведения об эффектах анимации. Вводный пример в разделе Коллекция примеров анимации.

Мультимедиа

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

изображения;

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

Styling sample screenshot

Более подробную информацию см. в разделе Общие сведения об обработке изображений.

Видео и звук

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

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

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

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

См. также