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(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 sehen Sie ein Beispiel für das Festlegen der Quelle eines Images auf eine SVG-Datei. Da keine Höhe oder Breite explizit angegeben ist, legt das Anwendungslayout die entsprechende 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 mithilfe eines ImageBrush-Steuerelements 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 Uniform Resource Identifier (URI) für den Zugriff auf Bildquelldateien aus App-Ressourcen 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 ohne wartebare Syntax 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: Die SvgImageSource ist erst einsatzbereit, wenn sie ein Open-Ereignis auslöst, das einen erfolgreichen asynchronen Quellsatzvorgang anzeigt.
  • Legen Sie die UriSource-Eigenschaft fest. Wie beim Uri-Konstruktor ist diese Aktion implizit asynchron, und die SvgImageSource ist erst einsatzbereit, wenn sie ein Geöffnetes 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 werden, die noch keine vollständige Quelle aufweist. Anstatt Ausnahmen zu behandeln, sollten Sie Open- oder OpenFailed-Ereignisse entweder direkt für die 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 für ein SvgImageSource-Objekt der Quellwert festgelegt oder zurückgesetzt wird.

Festlegen der Größe

Abhängig vom 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 festgelegt, wobei das Seitenverhältnis beibehalten wird. Wenn keine Größe aus dem Layout der Anwendung ermittelt 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 ist als die "eingeführte Version", die weiter unten auf dieser Seite im Block "Anforderungen" angezeigt wird, können Sie SvgImageSource nicht verwenden. Weitere Informationen finden Sie unter Adaptiver Versionscode.

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 Laufzeitprü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

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

(Geerbt von DependencyObject)
DispatcherQueue

Ruft den DispatcherQueue ab, dem dieses Objekt zugeordnet ist. Stellt DispatcherQueue eine Funktion dar, die auf den 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-Rasterungsvorgänge verwendet werden soll, oder legt sie fest.

RasterizePixelHeightProperty

Gibt die Abhängigkeitseigenschaft RasterizePixelHeight an.

RasterizePixelWidth

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

RasterizePixelWidthProperty

Identifiziert die Abhängigkeitseigenschaft RasterizePixelWidth .

UriSource

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

UriSourceProperty

Gibt die UriSource-Abhängigkeitseigenschaft an.

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 festgelegt wurde, was 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 registriert wurde, indem RegisterPropertyChangedCallback aufgerufen 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 auftritt.

Gilt für: