SvgImageSource Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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ück |
DispatcherQueue |
Ruft den |
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. |