Show / Hide Table of Contents

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

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

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

Note

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Эти встроенные фигуры 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

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

Окно сообщения, сообщение «You clicked the ellipse!»

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

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

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

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

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

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

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

Иллюстрация различных кистей WPF и заливки элементов.

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

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

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

Снимок экрана: пример, показывающий отрисовку трехмерных фигур с использованием различных текстур.

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

Анимация

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

Снимок экрана анимированного куба.

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

Мультимедиа

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

Изображения

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

Снимок экрана стилей

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

Видео и звук

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

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

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

См. также

  • System.Windows.Media
  • System.Windows.Media.Animation
  • System.Windows.Media.Media3D
  • Двумерная графика и изображения
  • Обзор фигур и базовых средств рисования в приложении WPF
  • Общие сведения о закраске сплошным цветом и градиентом
  • Рисование с помощью объектов Image, Drawing и Visual
  • Разделы руководства по анимации и таймерам
  • Обзор трехмерной графики
  • Общие сведения о мультимедиа
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX