WPF 图形、动画和媒体概述

更新:2007 年 11 月

本主题介绍 Windows Presentation Foundation (WPF) 的图形、动画和媒体功能,使用这些功能,可以向应用程序添加图形、过渡效果、声音和视频。

WPF 提供高级绘图和动画功能,以前只能从专用库(具体来说,就是 Microsoft Windows 图形设备接口 (GDI) 和 Microsoft Windows GDI+)使用这些功能。现在,WPF 提供对多媒体、向量图形、动画和内容撰写的集成支持,使得开发人员可以轻松地生成悦目的用户界面和内容。使用 Microsoft Visual Studio .NET 或者甚至文本编辑器(如 Microsoft Visual Studio .NET),可以创建矢量图形或复杂的动画并将媒体集成到应用程序中。

本主题包括下列各节。

  • WPF 在图形和多媒体方面的新增功能
  • 动画
  • 媒体
  • 相关主题

WPF 在图形和多媒体方面的新增功能

WPF 向 WPF 开发人员引进了新的图形功能,这些功能具有如下优点:

  • 与分辨率和设备无关的图形。WPF 图形系统使用与设备无关的单元来支持分辨率和设备独立性。每个与设备无关的像素都会随系统上的每英寸点数设置自动缩放。

  • 更高的精度。WPF 坐标系使用双精度值,而不使用浮点值。转换值和不透明度值也是使用双精度值来表示。WPF 还支持更广泛的颜色域 (scRGB),并为管理来自不同颜色空间的输入提供了集成的支持。

  • 高级图形和动画支持。WPF 通过为您管理场景图简化了图形编程;您无需再担心场景处理、呈现循环和双线性内插算法。WPF 提供了命中测试支持、集成的动画系统和全面的 alpha 合成支持。

  • 硬件加速。WPF 图形系统旨在利用图形硬件来最小化 CPU 使用率。

二维形状

WPF 提供了一个库,包含用矢量绘制的常用 二维 形状,如下图中演示的矩形和椭圆。

椭圆和矩形

这些内部的 WPF 形状不仅仅是形状:它们是可编程的元素,能够实现可通过最常见的控件(包括键盘输入和鼠标输入)实现的许多功能。

<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("Me, a simple ellipse, was mouse clicked!");
    }
}

下面的插图显示前面 XAML 标记和代码隐藏的输出。

包含文本“单击省略号!”的窗口

有关更多信息,请参见 WPF 中的形状和基本绘图概述。有关介绍性示例,请参见形状元素示例

二维几何图形

当 WPF 提供的 二维 形状不足时,可以使用 WPF 中的几何图形和路径支持来创建自己的形状。下面的插图显示如何使用几何图形来创建形状、如何将几何图形用作绘图画笔以及如何使用几何图形来剪裁其他 WPF 元素。

Path 的各种用法

有关更多信息,请参见Geometry 概述。有关介绍性示例,请参见几何图形示例

二维效果

WPF 提供了一个包含 二维 类的库,可用来创建各种效果。使用 WPF 的 二维 呈现功能,可以绘制具有渐变、位图、绘图和视频的 UI 元素,并借助于旋转、缩放和扭曲功能来操作这些元素。下图举例说明通过 WPF 画笔可获得的多种效果。

不同画笔的图示

有关更多信息,请参见 WPF 画笔概述。有关介绍性示例,请参见Brush 示例

三维呈现

WPF 提供了一组三维呈现功能,这些功能可与 WPF 中的二维图形支持功能集成,以便您创建更加令人惊喜的布局、UI 和数据可视化效果。在色谱的一端,WPF 允许您将 WPF 图像呈现到 WPF 形状的一个图面上,如下图中所示。

Visual3D 示例屏幕快照

有关更多信息,请参见三维图形概述。有关介绍性示例,请参见三维实体示例

动画

使用动画,可以使控件和元素变大、晃动、旋转和淡化,还可以产生有趣的页面过渡和更多效果。由于 WPF 允许您对大多数属性进行动画处理,因此,您不但可以对大多数 WPF 对象进行动画处理,而且还可以使用 WPF 来对您创建的自定义对象进行动画处理。

具有动画效果的立方体图

有关更多信息,请参见动画概述。有关介绍性示例,请参见动画示例库

媒体

图像、视频和音频是用来传达信息和用户体验的富媒体方法。

图像

图像(包括图标、背景甚至动画的一部分)是大多数应用程序的核心部分。由于您经常需要使用图像,因此 WPF 提供了以各种方式处理图像的功能。下图只说明了其中的一种方法。

样式示例屏幕快照

有关更多信息,请参见图像处理概述。有关介绍性示例,请参见 WPF 照片查看器演示

视频和音频

WPF 的一个核心图形功能就是为处理多媒体(包括视频和音频)提供本机支持。下面的示例说明如何在应用程序中插入媒体播放器。

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

MediaElement 既能够播放视频又能够播放音频,而且具有很好的可扩展性,可以用来方便地创建自定义的 UI。

有关更多信息,请参见多媒体概述。有关介绍性示例,请参见媒体库

请参见

概念

优化性能:二维图形和图像处理

WPF 中的形状和基本绘图概述

使用纯色和渐变进行绘制概述

使用图像、绘图和 Visual 进行绘制

动画概述