圖形和多媒體

Windows Presentation Foundation (WPF) 支援多媒體、向量圖形、動畫和內容組合,方便開發人員建置有趣的使用者介面和內容。 使用 Visual Studio,您可以建立向量圖形或複雜的動畫,並將媒體整合到應用程式中。

本主題介紹 WPF 的圖形、動畫和媒體功能,其可讓您將圖形、轉換效果、音效以及影片新增至您的應用程式。

注意

強烈建議不要在 Windows 服務中使用 WPF 類型。 如果您嘗試在 Windows 服務中使用 WPF 類型,該服務可能無法如預期般運作。

WPF 4 中圖形和多媒體的新功能

圖形和動畫有數項相關變更。

  • 版面配置進位

    當物件邊緣位於像素裝置中間時,DPI 獨立圖形系統可以建立轉譯成品,例如模糊或半透明的邊緣。 先前的 WPF 版本包含像素貼齊功能來協助處理這種情況。 Silverlight 2 引進版面配置進位,這是另一種移動元素以讓邊緣落在整個像素邊界上的方法。 WPF 現在支援在 FrameworkElement 上使用配置進位和 UseLayoutRounding 附加屬性。

  • 快取的組合

    使用新的 BitmapCacheBitmapCacheBrush 類別,您可以快取視覺化樹狀結構的複雜組件作為點陣圖,大幅改善轉譯時間。 點陣圖仍可持續回應滑鼠點選之類的使用者輸入,您也可以將它繪製在其他元素上,就像筆刷一般。

  • 像素著色器 3 支援

    WPF 4 建置在 WPF 3.5 SP1 中引進的 ShaderEffect 支援上,允許應用程式使用像素著色器 (PS) 3.0 版來撰寫效果。 PS 3.0 著色器模型比 PS 2.0 更為複雜,其在支援的硬體上允許使用更多效果。

  • Easing 函式

    您可以利用 Easing 函式讓您進一步控制動畫的行為來美化動畫。 例如,您可以將 ElasticEase 套用至動畫,讓動畫產生彈力效果。 如需詳細資訊,請參閱 System.Windows.Media.Animation 命名空間中的緩動類型。

圖形和轉譯

WPF 可支援高品質的 2D 圖形。 這些功能包括筆刷、幾何、影像、圖形及轉換。 如需詳細資訊,請參閱圖形。 根據 Visual 類別來轉譯圖形化元素。 螢幕上視覺物件的結構是由視覺化樹狀結構描繪。 如需詳細資訊,請參閱 WPF 圖形轉譯概觀

2D 圖形

WPF 提供以向量繪製的常用 2D 圖形圖庫,例如下圖所示的矩形和橢圓形。

Diagram showing ellipses and rectangles.

這些內建 WPF 圖形不只是圖形︰它們也是可程式化元素,能實作許多最常見控制項的功能,包括鍵盤和滑鼠輸入。 以下範例示範如何處理按一下 Ellipse 元素所引發的 MouseUp 事件。

<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 中圖案和基本繪圖概觀。 如需簡介範例,請參閱圖形元素範例

2D 幾何

當 WPF 提供的 2D 圖形不敷使用時,您可以使用 WPF 來支援您自己建立的幾何和路徑。 下圖示範如何使用幾何來建立圖形,當做繪圖筆刷並裁剪其他 WPF 元素。

Screenshot showing how you can use geometries to create shapes.

如需詳細資訊,請參閱幾何概觀。 如需簡介範例,請參閱幾何範例

2D 效果

WPF 提供 2D 類別的程式庫可讓您建立各種不同的效果。 WPF 的 2D 轉譯功能可讓您繪製具有漸層的 UI 元素、點陣圖、繪圖和影片,以及使用旋轉、縮放和傾斜來操作。 下圖示範可以使用 WPF 筆刷達到的許多效果。

Illustration showing the different WPF brushes and paint elements.

如需詳細資訊,請參閱 WPF 筆刷概觀。 如需簡介範例,請參閱筆刷範例

3D 轉譯

WPF 提供一組 3D 轉譯功能,和 WPF 中的 2D 圖形支援整合,讓您建立更有趣的版面配置、UI 及資料視覺效果。 另一方面,WPF 可讓您將 2D 影像轉譯到 3D 圖形的表面上,如下圖所示範。

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

如需詳細資訊,請參閱 3D 圖形診斷。 如需簡介範例,請參閱 3D 單色範例

動畫

使用動畫讓控制項和元素放大、搖晃、旋轉和淡出,以及建立有趣的網頁切換及執行其他工作。 因為 WPF 可讓您以動畫顯示大部分屬性,您不只可以動畫顯示大部分 WPF 物件,也可以使用 WPF 以動畫顯示您所建立的自訂物件。

Screenshot of an animated cube.

如需詳細資訊,請參閱 動畫概觀。 如需簡介範例,請參閱動畫範例圖庫

媒體

影像、視訊和音訊都是以媒體功能豐富的方式傳達資訊和使用者體驗。

圖像

包括圖示、背景,甚至動畫組件的影像,是大部分應用程式的核心組件。 因為您經常需要使用影像,所以 WPF 公開能以各種不同方式處理的功能。 下圖顯示眾多方式的其中之一。

Styling sample screenshot

如需詳細資訊,請參閱 影像處理概觀

視訊和音訊

WPF 圖形功能的核心功能就是提供原生支援,以用於處理多媒體,包括視訊和音訊。 下列範例示範如何將媒體播放程式插入至應用程式。

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

MediaElement 能夠播放視訊和音訊,並具有可擴充性,足以讓您輕鬆建立自訂的 UI。

如需詳細資訊,請參閱多媒體概觀

另請參閱