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


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

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

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

Заметка

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

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

Внесены некоторые изменения, связанные с графикой и анимацией.

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

    Когда край объекта оказывается в середине пикселя, система графики, независимая от DPI, может создавать артефакты рендеринга, такие как размытые или полупрозрачные края. Предыдущие версии 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 включает поддержку высококачественной 2D-графики. Эта функция включает кисти, геометрии, изображения, фигуры и преобразования. Дополнительные сведения см. в разделе Графика. Отрисовка графических элементов основана на классе Visual. Структура визуальных объектов на экране описывается визуальным деревом. Дополнительные сведения см. в обзоре отрисовки графики WPF.

2D-фигуры

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

диаграмма, показывающая эллипсы и прямоугольники.

Эти встроенные фигуры 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 и программной части.

Сообщение с надписью

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

2D Геометрия

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

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

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

Эффекты 2D

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

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

Подробности см. в обзоре кистей WPF . Для вводного образца см. Пример кисти.

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

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

снимок экрана примера с трехмерными фигурами с различными текстурами.

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

Мультипликация

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

снимок экрана с анимированным кубом.

Дополнительные сведения см. в обзоре анимации. Для ознакомления см. в галерее примеров анимации .

Медиа

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

Изображения

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

образец оформления - снимок экрана

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

Видео и звук

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

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

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

Для получения дополнительной информации см. обзор мультимедиа .

См. также