SvgImageSource 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
針對使用可調整向量圖形 (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
- 繼承
- 屬性
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 事件。
Opened 和 OpenFailed 互斥。 每當 SvgImageSource 物件設定或重設其來源值時,一律會引發其中一個事件或另一個事件。
調整大小
根據您的預期使用案例,您可以透過數種不同的方式指定 SvgImageSource 的大小:
- 使用 RasterizePixelHeight 和 RasterizePixelWidth 屬性,以邏輯圖元指定明確的高度和寬度,以解碼 SVG 來源。
- 如果您未指定 RasterizePixelHeight 或 RasterizePixelWidth,則應用程式的版面配置會指定解碼大小,同時仍保留外觀比例。 如果無法從應用程式的版面配置中判斷大小,SVG 來源將會解碼為視窗大小上限。
版本相容性
在 Windows 10 1703 版之前,無法使用 SvgImageSource 類別。 如果您的應用程式在 Microsoft Visual Studio 中的「最低平臺版本」設定小於此頁面稍後的 Requirements 區塊中顯示的「引進版本」,您將無法使用 SvgImageSource。 如需詳細資訊,請參閱 版本調適型程式碼。
若要避免在舊版Windows 10上執行您的應用程式時發生例外狀況,請勿在 XAML 中設定此屬性,或在不執行執行時間檢查的情況下使用它。 此範例示範如何使用 ApiInformation 類別來檢查此類別是否存在,再使用它。
建構函式
SvgImageSource() |
初始化 SvgImageSource 類別的新實例。 |
SvgImageSource(Uri) |
使用提供的統一資源識別項 (URI) ,初始化 SvgImageSource 類別的新實例。 |
屬性
Dispatcher |
取得這個 物件相關聯的 CoreDispatcher 。 CoreDispatcher代表可在 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 擷取或格式相關聯的錯誤時。 |