/// [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
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
事件。
Opened
和
OpenFailed
互斥。 每當 SvgImageSource 物件設定或重設其來源值時,一律會引發其中一個事件或另一個事件。
根據您的預期使用案例,您可以透過數種不同的方式指定 SvgImageSource 的大小:
使用
RasterizePixelHeight
和
RasterizePixelWidth
屬性,以邏輯圖元指定明確的高度和寬度,以解碼 SVG 來源。
如果您未指定
RasterizePixelHeight
或
RasterizePixelWidth
,則應用程式的版面配置會指定解碼大小,同時仍保留外觀比例。 如果無法從應用程式的版面配置中判斷大小,SVG 來源將會解碼為視窗大小上限。
版本相容性
在 Windows 10 1703 版之前,無法使用 SvgImageSource 類別。 如果您的應用程式在 Microsoft Visual Studio 中的「最低平臺版本」設定小於此頁面稍後的 Requirements 區塊中顯示的「引進版本」,您將無法使用 SvgImageSource。 如需詳細資訊,請參閱
版本調適型程式碼
。
若要避免在舊版Windows 10上執行您的應用程式時發生例外狀況,請勿在 XAML 中設定此屬性,或在不執行執行時間檢查的情況下使用它。 此範例示範如何使用
ApiInformation
類別來檢查此類別是否存在,再使用它。
取得這個 物件相關聯的
CoreDispatcher
。
CoreDispatcher
代表可在 UI 執行緒上存取
DependencyObject
的功能,即使程式碼是由非 UI 執行緒起始也一樣。
(繼承來源
DependencyObject
)