SvgImageSource クラス

定義

スケーラブル ベクター グラフィックス (SVG) ソースを使用するプロパティのソース オブジェクトを提供します。 SVG ファイルを参照する Uniform Resource Identifier (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 を使用すると、SVG ソースを使用して ImageBrush を使用するか 、Image コントロールに直接表示できます。 SvgImageSource では、SVG 仕様からのセキュリティで保護された静的モードがサポートされており、アニメーションや相互作用はサポートされていません。 Direct2D API は、基になる SVG レンダリング のサポートを提供し、特定の SVG 要素と属性のサポートの詳細については、「 SVG サポート」を参照してください。 形式と、Uri (Uniform Resource Identifier) を使用してアプリ リソースから取得されたイメージ ソース ファイルにアクセスする方法の詳細については、「 Image and ImageBrush」を参照してください。

SvgImageSource は抽象化を表し、SVG ソースを非同期的に設定できますが、XAML マークアップでプロパティ値として参照することも、待機可能な構文を使用しないオブジェクトとしてコードで参照することもできます。 SvgImageSource オブジェクトをコードで作成すると、最初は有効なソースがありません。 その後、次のいずれかの手法を使用してソースを設定する必要があります。

  • 既定のコンストラクターではなく 、SvgImageSource(Uri) コンストラクターを使用します。 これはコンストラクターですが、暗黙的な非同期動作があると考えることができます。SvgImageSource は、非同期ソース セット操作が成功したことを示す Opened イベントが発生するまで使用する準備ができていません。
  • UriSource プロパティを設定します。 Uri コンストラクターと同様に、このアクションは暗黙的に非同期であり、SvgImageSource は Opened イベントを発生するまで使用する準備ができていません。
  • SetSourceAsync(IRandomAccessStream)を使用します。 このメソッドは明示的に非同期です。 Source などの SvgImageSource を使用する可能性があるプロパティは、この非同期動作用に設計されており、完全なソースがまだない SvgImageSource を使用して設定されている場合、例外はスローされません。 例外を処理するのではなく、SvgImageSource で直接、またはソースを使用するコントロールで Open イベントまたは OpenFailed イベントを処理する必要があります (これらのイベントがコントロール クラスで使用可能な場合)。

OpenOpenFailed は相互に排他的です。 SvgImageSource オブジェクトのソース値が設定またはリセットされるたびに、一方のイベントまたはもう一方のイベントが常に発生します。

サイズ変更

目的のユース ケースに応じて、いくつかの異なる方法で SvgImageSource のサイズを指定できます。

  • SVG ソースをデコードする明示的な高さと幅を論理ピクセルで指定するには、 RasterizePixelHeight プロパティと RasterizePixelWidth プロパティを使用します。
  • RasterizePixelHeight または RasterizePixelWidth を指定しない場合は、縦横比を維持しながら、アプリケーションのレイアウトによってデコード サイズが決定されます。 アプリケーションのレイアウトからサイズを決定できない場合、SVG ソースは最大ウィンドウ サイズにデコードされます。

バージョンの互換性

SvgImageSource クラスは、バージョン 1703 Windows 10より前は使用できません。 Microsoft Visual Studio のアプリの "最小プラットフォーム バージョン" 設定が、このページの後半の 「要件」 ブロックに示されている "導入されたバージョン" より小さい場合、SvgImageSource を使用することはできません。 詳細については、「 バージョン アダプティブ コード」を参照してください。

アプリを以前のバージョンのWindows 10で実行するときに例外を回避するには、XAML でこのプロパティを設定したり、ランタイム チェックを実行せずに使用したりしないでください。 この例では、ApiInformation クラスを使用して、使用する前にこのクラスの存在をチェックする方法を示します。

コンストラクター

SvgImageSource()

SvgImageSource クラスの新しいインスタンスを初期化します。

SvgImageSource(Uri)

指定された Uniform Resource Identifier (URI) を使用して、 SvgImageSource クラスの新しいインスタンスを初期化します。

プロパティ

Dispatcher

このオブジェクトが関連付けられている CoreDispatcher を取得します。 CoreDispatcher は、コードが UI 以外のスレッドによって開始された場合でも、UI スレッド上の DependencyObject にアクセスできる機能を表します。

(継承元 DependencyObject)
RasterizePixelHeight

SVG ラスター化操作に使用する高さを取得または設定します。

RasterizePixelHeightProperty

RasterizePixelHeight 依存関係プロパティを識別します。

RasterizePixelWidth

SVG ラスター化操作に使用する幅を取得または設定します。

RasterizePixelWidthProperty

RasterizePixelWidth 依存関係プロパティを識別します。

UriSource

この SvgImageSource を生成した SVG ソース ファイルの URI (Uniform Resource Identifier) を取得または設定します。

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 の取得または形式に関連するエラーが発生したときに発生します。

適用対象