Sprache

SvgImageSource Klasse

Definition

Stellt ein Quellobjekt für Eigenschaften bereit, die eine SVG-Quelle (Scalable Vector Graphics) verwenden. Sie können eine SvgImageSource mithilfe eines URI (Uniform Resource Identifier) definieren, der auf eine SVG-Datei verweist, oder indem Sie SetSourceAsync(IRandomAccessStream) aufrufen und einen Datenstrom bereitstellen.

/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [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(Microsoft.UI.Xaml.WinUIContract), 65536)]
[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
Vererbung
Object IInspectable DependencyObject ImageSource SvgImageSource
Attribute

Beispiele

Hier ist ein Beispiel zum Festlegen der Quelle eines Bilds auf eine SVG-Datei. Da keine explizite Höhe oder Breite angegeben ist, bestimmt das Anwendungslayout die entsprechende Größe für die Decodierung des SVG bei.

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

Hinweise

Mit SvgImageSource können Sie eine SVG-Quelle verwenden, um mit einem ImageBrush oder direkt in einem Image-Steuerelement angezeigt zu werden. SvgImageSource unterstützt den sicheren statischen Modus aus der SVG-Spezifikation und unterstützt keine Animationen oder Interaktionen. Die Direct2D-API liefert die zugrunde liegende SVG-Renderingunterstützung und weitere Informationen zu bestimmten SVG-Elementen und Attributunterstützung, siehe SVG-Support. Weitere Informationen zu Formaten und zum Verwenden des URI (Uniform Resource Identifier) für den Zugriff auf Bildquelldateien, die aus App-Ressourcen stammen, finden Sie unter Image und ImageBrush.

Die SvgImageSource stellt eine Abstraktion dar, sodass eine SVG-Quelle asynchron festgelegt werden kann, aber weiterhin als Eigenschaftswert im XAML-Markup oder im Code als Objekt referenziert werden kann, das keine erwartbare Syntax verwendet. Wenn Sie ein SvgImageSource-Objekt im Code erstellen, hat es zunächst keine gültige Quelle. Anschließend sollten Sie die Quelle mit einer der folgenden Techniken festlegen:

  • Verwenden Sie den SvgImageSource(Uri) -Konstruktor anstelle des Standardkonstruktors. Obwohl es sich um einen Konstruktor handelt, können Sie sich dies als implizites asynchrones Verhalten vorstellen: Die SvgImageSource kann erst verwendet werden, wenn es ein Opened-Ereignis auslöst, das einen erfolgreichen asynchronen Quellsatzvorgang angibt.
  • Legen Sie die UriSource-Eigenschaft fest. Wie beim URI-Konstruktor ist diese Aktion implizit asynchron, und die SvgImageSource kann erst verwendet werden, wenn es ein Opened-Ereignis auslöst.
  • Verwenden Sie SetSourceAsync(IRandomAccessStream). Diese Methode ist explizit asynchron. Die Eigenschaften, in denen Sie möglicherweise eine SvgImageSource verwenden, z. B. Source, sind für dieses asynchrone Verhalten ausgelegt und lösen keine Ausnahmen aus, wenn sie mit einer SvgImageSource festgelegt werden, die noch keine vollständige Quelle aufweist. Anstatt Ausnahmen zu behandeln, sollten Sie Open- oder OpenFailed-Ereignisse entweder direkt auf der SvgImageSource oder auf dem Steuerelement behandeln, das die Quelle verwendet (wenn diese Ereignisse in der Steuerelementklasse verfügbar sind).

Geöffnet und OpenFailed schließen sich gegenseitig aus. Ein Ereignis oder das andere wird immer ausgelöst, wenn ein SvgImageSource-Objekt seinen Quellwert festgelegt oder zurückgesetzt hat.

Dimensionierung

Je nach beabsichtigtem Anwendungsfall können Sie die Größe einer SvgImageSource auf verschiedene Arten angeben:

  • Verwenden Sie die Eigenschaften RasterizePixelHeight und RasterizePixelWidth , um eine explizite Höhe und Breite in logischen Pixeln anzugeben, um die SVG-Quelle zu decodieren.
  • Wenn Sie kein RasterizePixelHeight - oder RasterizePixelWidth-Element angeben, bestimmt das Layout der Anwendung die Decodierungsgröße, während das Seitenverhältnis beibehalten wird. Wenn keine Größe aus dem Layout der Anwendung bestimmt werden kann, wird die SVG-Quelle mit der maximalen Fenstergröße decodiert.

Versionskompatibilität

Die SvgImageSource-Klasse ist vor Windows 10, Version 1703, nicht verfügbar. Wenn die Einstellung "Mindestplattformversion" ihrer App in Microsoft Visual Studio kleiner als die im Anforderungsblock weiter unten auf dieser Seite angezeigte "Eingeführte Version" ist, können Sie SvgImageSource nicht verwenden. Weitere Informationen finden Sie unter versionsadaptiven Code.

Um Ausnahmen zu vermeiden, wenn Ihre App in früheren Versionen von Windows 10 ausgeführt wird, legen Sie diese Eigenschaft nicht in XAML fest, oder verwenden Sie sie nicht, ohne eine Laufzeitüberprüfung durchzuführen. In diesem Beispiel wird gezeigt, wie Sie mithilfe der ApiInformation-Klasse überprüfen, ob diese Klasse vorhanden ist, bevor Sie sie verwenden.

Konstruktoren

Name Beschreibung
SvgImageSource()

Initialisiert eine neue Instanz der SvgImageSource-Klasse .

SvgImageSource(Uri)

Initialisiert eine neue Instanz der SvgImageSource-Klasse mithilfe des bereitgestellten Uniform Resource Identifier (URI).

Eigenschaften

Name Beschreibung
Dispatcher

Gibt immer in einer Windows App SDK-App zurück null . Verwenden Sie stattdessen DispatcherQueue .

(Geerbt von DependencyObject)
DispatcherQueue

Ruft ab DispatcherQueue , dem dieses Objekt zugeordnet ist. Dies DispatcherQueue stellt eine Einrichtung dar, die auf den DependencyObject UI-Thread zugreifen kann, auch wenn der Code von einem Nicht-UI-Thread initiiert wird.

(Geerbt von DependencyObject)
RasterizePixelHeight

Ruft die Höhe ab, die für SVG-Rasterungsvorgänge verwendet werden soll, oder legt diese fest.

RasterizePixelHeightProperty

Identifies the RasterizePixelHeight dependency property.

RasterizePixelWidth

Ruft die Breite ab, die für SVG-Rasterungsvorgänge verwendet werden soll, oder legt sie fest.

RasterizePixelWidthProperty

Identifies the RasterizePixelWidth dependency property.

UriSource

Dient zum Abrufen oder Festlegen des URI (Uniform Resource Identifier) der SVG-Quelldatei, die diese SvgImageSource generiert hat.

UriSourceProperty

Identifies the UriSource dependency property.

Methoden

Name Beschreibung
ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Abhängigkeitseigenschaft.

(Geerbt von DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Gibt einen Basiswert zurück, der für eine Abhängigkeitseigenschaft eingerichtet wurde, was in Fällen angewendet wird, in denen eine Animation nicht aktiv ist.

(Geerbt von DependencyObject)
GetValue(DependencyProperty)

Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft aus einem DependencyObject zurück.

(Geerbt von DependencyObject)
ReadLocalValue(DependencyProperty)

Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn ein lokaler Wert festgelegt wird.

(Geerbt von DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registriert eine Benachrichtigungsfunktion, um Änderungen an einer bestimmten DependencyProperty für diese DependencyObject-Instanz zu überwachen.

(Geerbt von DependencyObject)
SetSourceAsync(IRandomAccessStream)

Legt den SVG-Quellwert für eine SvgImageSource fest, indem er auf einen Datenstrom zugreift und das Ergebnis asynchron verarbeitet.

SetValue(DependencyProperty, Object)

Legt den lokalen Wert einer Abhängigkeitseigenschaft für ein DependencyObject fest.

(Geerbt von DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Bricht eine Änderungsbenachrichtigung ab, die zuvor durch Aufrufen von RegisterPropertyChangedCallback registriert wurde.

(Geerbt von DependencyObject)

Ereignisse

Name Beschreibung
Opened

Tritt auf, wenn die SVG-Quelle heruntergeladen und ohne Fehler decodiert wird.

OpenFailed

Tritt auf, wenn ein Fehler auftritt, der dem SVG-Abruf oder -Format zugeordnet ist.

Gilt für: