共用方式為


SvgImageSource 類別

定義

針對使用可調整向量圖形 (SVG) 來源的屬性提供來源物件。 您可以使用參考 SVG 檔案的統一資源識別項 (URI) ,或呼叫 SetSourceAsync (IRandomAccessStream) 並提供資料流程,來定義 SvgImageSource。

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SvgImageSource : ImageSource
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class SvgImageSource : ImageSource
Public Class SvgImageSource
Inherits ImageSource
繼承
Object IInspectable DependencyObject ImageSource SvgImageSource
屬性

Windows 需求

裝置系列
Windows 10 Creators Update (已於 10.0.15063.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v4.0 引進)

範例

以下是如何將 影像 來源設定為 SVG 檔案的範例。 由於未明確指定高度或寬度,因此應用程式佈建會指定要解碼的 SVG 適當大小。

<Image Source="Assets/mysvg.svg"/>

備註

SvgImageSource 可讓您使用 ImageBrush 或直接在 Image 控制項中顯示 SVG 來源。 SvgImageSource 支援來自 SVG 規格的安全靜態模式,且不支援動畫或互動。 Direct2D API 提供基礎 SVG 轉譯支援,如需特定 SVG 元素和屬性支援的詳細資訊,請參閱 SVG 支援。 如需格式及如何使用統一資源識別項 (URI) 來存取來自應用程式資源之影像來源檔案的詳細資訊,請參閱 Image 和 ImageBrush

SvgImageSource 代表抽象概念,以便以非同步方式設定 SVG 來源,但仍可在 XAML 標記中參考為屬性值,或在程式碼中作為不使用可等候語法的物件來參考。 當您在程式碼中建立 SvgImageSource 物件時,它一開始沒有有效的來源。 然後,您應該使用下列其中一種技術來設定其來源:

  • 使用 SvgImageSource (Uri) 建構函式,而不是預設建構函式。 雖然它是建構函式,但您可以將這視為具有隱含非同步行為:SvgImageSource 在引發指出成功非同步來源設定作業的 Opened 事件之前,不會準備好使用。
  • 設定 UriSource 屬性。 如同 Uri 建構函式,此動作是隱含非同步,在引發 Opened 事件之前,SvgImageSource 將無法準備好使用。
  • 使用 SetSourceAsync (IRandomAccessStream) 。 這個方法明確非同步。 您可以使用 SvgImageSource 的屬性,例如 Source,是針對這個非同步行為所設計,而且如果使用尚未擁有完整來源的 SvgImageSource 進行設定,則不會擲回例外狀況。 您應該直接處理 SvgImageSource 上的 Opened 或 OpenFailed 事件,或是在控制項類別) 上使用來源 (的控制項上處理 Opened 或 OpenFailed 事件。

OpenedOpenFailed 互斥。 每當 SvgImageSource 物件設定或重設其來源值時,一律會引發其中一個事件或另一個事件。

調整大小

根據您的預期使用案例,您可以透過數種不同的方式指定 SvgImageSource 的大小:

  • 使用 RasterizePixelHeightRasterizePixelWidth 屬性,以邏輯圖元指定明確的高度和寬度,以解碼 SVG 來源。
  • 如果您未指定 RasterizePixelHeightRasterizePixelWidth,則應用程式的版面配置會指定解碼大小,同時仍保留外觀比例。 如果無法從應用程式的版面配置中判斷大小,SVG 來源將會解碼為視窗大小上限。

版本相容性

在 Windows 10 1703 版之前,無法使用 SvgImageSource 類別。 如果您的應用程式在 Microsoft Visual Studio 中的「最低平臺版本」設定小於此頁面稍後的 Requirements 區塊中顯示的「引進版本」,您將無法使用 SvgImageSource。 如需詳細資訊,請參閱 版本調適型程式碼

若要避免在舊版Windows 10上執行您的應用程式時發生例外狀況,請勿在 XAML 中設定此屬性,或在不執行執行時間檢查的情況下使用它。 此範例示範如何使用 ApiInformation 類別來檢查此類別是否存在,再使用它。

建構函式

SvgImageSource()

初始化 SvgImageSource 類別的新實例。

SvgImageSource(Uri)

使用提供的統一資源識別項 (URI) ,初始化 SvgImageSource 類別的新實例。

屬性

Dispatcher

取得這個 物件相關聯的 CoreDispatcherCoreDispatcher代表可在 UI 執行緒上存取DependencyObject的功能,即使程式碼是由非 UI 執行緒起始也一樣。

(繼承來源 DependencyObject)
RasterizePixelHeight

取得或設定要用於 SVG 點陣化作業的高度。

RasterizePixelHeightProperty

識別 RasterizePixelHeight 相依性屬性。

RasterizePixelWidth

取得或設定要用於 SVG 點陣化作業的寬度。

RasterizePixelWidthProperty

識別 RasterizePixelWidth 相依性屬性。

UriSource

取得或設定產生此 SvgImageSource 之 SVG來源檔案的統一資源識別項 (URI) 。

UriSourceProperty

識別 UriSource 相依性屬性。

方法

ClearValue(DependencyProperty)

清除相依性屬性的本機值。

(繼承來源 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

傳回為相依性屬性建立的任何基底值,如果動畫未使用中,則適用此屬性。

(繼承來源 DependencyObject)
GetValue(DependencyProperty)

DependencyObject傳回相依性屬性的目前有效值。

(繼承來源 DependencyObject)
ReadLocalValue(DependencyProperty)

如果已設定本機值,則傳回相依性屬性的本機值。

(繼承來源 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

註冊通知函式,以接聽此DependencyObject實例上特定DependencyProperty的變更。

(繼承來源 DependencyObject)
SetSourceAsync(IRandomAccessStream)

存取資料流程並以非同步方式處理結果,以設定 SvgImageSource 的來源 SVG。

SetValue(DependencyProperty, Object)

設定 DependencyObject上相依性屬性的本機值。

(繼承來源 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

取消先前透過呼叫 RegisterPropertyChangedCallback註冊的變更通知。

(繼承來源 DependencyObject)

事件

Opened

發生于下載並解碼 SVG 來源時,不會失敗。

OpenFailed

發生于與 SVG 擷取或格式相關聯的錯誤時。

適用於