Freigeben über


SvgImageSource Klasse

Definition

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

/// [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
Vererbung
Object IInspectable DependencyObject ImageSource SvgImageSource
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 Creators Update (eingeführt in 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v4.0)

Beispiele

Hier sehen Sie ein Beispiel für das Festlegen der Quelle eines Bilds auf eine SVG-Datei. Da keine Höhe oder Breite explizit angegeben ist, gibt das Anwendungslayout die geeignete Größe für die SVG vor, um zu decodieren.

<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 stellt die zugrunde liegende SVG-Renderingunterstützung bereit. Weitere Informationen zu spezifischen SVG-Elementen und Attributen finden Sie unter SVG-Unterstützung. Weitere Informationen zu Formaten und zur Verwendung 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 dennoch im XAML-Markup als Eigenschaftswert oder im Code als Objekt, das keine erwartbare Syntax verwendet, referenziert werden kann. Wenn Sie ein SvgImageSource-Objekt im Code erstellen, verfügt es zunächst über 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: SvgImageSource ist erst einsatzbereit, wenn ein Opened-Ereignis ausgelöst wird, das auf einen erfolgreichen asynchronen Quellsatzvorgang hinweist.
  • Legen Sie die UriSource-Eigenschaft fest. Wie beim URI-Konstruktor ist diese Aktion implizit asynchron, und die SvgImageSource ist erst einsatzbereit, wenn sie ein Opened-Ereignis auslöst.
  • Verwenden Sie SetSourceAsync(IRandomAccessStream). Diese Methode ist explizit asynchron. Die Eigenschaften, in denen Sie eine SvgImageSource verwenden können, z. B. Source, sind für dieses asynchrone Verhalten konzipiert und lösen keine Ausnahmen aus, wenn sie mit einer SvgImageSource festgelegt wurden, die noch keine vollständige Quelle aufweist. Anstatt Ausnahmen zu behandeln, sollten Sie Open - oder OpenFailed-Ereignisse entweder direkt für SvgImageSource oder für das Steuerelement behandeln, das die Quelle verwendet (wenn diese Ereignisse für die Steuerelementklasse verfügbar sind).

Open und OpenFailed schließen sich gegenseitig aus. Das eine oder andere Ereignis wird immer ausgelöst, wenn der Quellwert für ein SvgImageSource-Objekt festgelegt oder zurückgesetzt wird.

Festlegen der Größe

Abhängig von Ihrem beabsichtigten 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 angeben, wird die Decodierungsgröße vom Layout der Anwendung vorgegeben, während das Seitenverhältnis beibehalten wird. Wenn keine Größe vom Layout der Anwendung bestimmt werden kann, wird die SVG-Quelle auf die maximale 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 Abschnitt "Anforderungen" weiter unten auf dieser Seite angezeigte "eingeführte Version" ist, können Sie SvgImageSource nicht verwenden. Weitere Informationen finden Sie unter Versionsadaptiver 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 die ApiInformation-Klasse verwenden, um zu überprüfen, ob diese Klasse vorhanden ist, bevor Sie sie verwenden.

Konstruktoren

SvgImageSource()

Initialisiert eine neue instance der SvgImageSource-Klasse.

SvgImageSource(Uri)

Initialisiert eine neue instance der SvgImageSource-Klasse unter Verwendung des angegebenen URI (Uniform Resource Identifier).

Eigenschaften

Dispatcher

Ruft den CoreDispatcher ab, dem dieses Objekt zugeordnet ist. CoreDispatcher stellt eine Funktion dar, die auf das DependencyObject im 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-Rasterisierungsvorgänge verwendet werden soll, oder legt sie fest.

RasterizePixelHeightProperty

Identifiziert die RasterizePixelHeight-Abhängigkeitseigenschaft .

RasterizePixelWidth

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

RasterizePixelWidthProperty

Identifiziert die Abhängigkeitseigenschaft RasterizePixelWidth .

UriSource

Ruft den URI (Uniform Resource Identifier) der SVG-Quelldatei ab, die diese SvgImageSource generiert hat, oder legt diesen fest.

UriSourceProperty

Identifiziert die UriSource-Abhängigkeitseigenschaft .

Methoden

ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Abhängigkeitseigenschaft.

(Geerbt von DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Gibt einen beliebigen Basiswert zurück, der für eine Abhängigkeitseigenschaft eingerichtet wurde, der in Fällen gilt, 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 ist.

(Geerbt von DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registriert eine Benachrichtigungsfunktion zum Lauschen auf Änderungen an einer bestimmten DependencyProperty für dieses DependencyObject-instance.

(Geerbt von DependencyObject)
SetSourceAsync(IRandomAccessStream)

Legt das Quell-SVG für eine SvgImageSource fest, indem auf einen Stream zugegriffen und das Ergebnis asynchron verarbeitet wird.

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

Opened

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

OpenFailed

Tritt auf, wenn ein Fehler im Zusammenhang mit dem SVG-Abruf oder -Format vorliegt.

Gilt für: