Partager via


SvgImageSource Classe

Définition

Fournit un objet source pour les propriétés qui utilisent une source SVG (Scalable Vector Graphics). Vous pouvez définir un SvgImageSource à l’aide d’un URI (Uniform Resource Identifier) qui fait référence à un fichier SVG, ou en appelant SetSourceAsync(IRandomAccessStream) et en fournissant un flux.

/// [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
Héritage
Object IInspectable DependencyObject ImageSource SvgImageSource
Attributs

Exemples

Voici un exemple de définition de la source d’une image sur un fichier SVG. Étant donné qu’aucune hauteur ou largeur n’est spécifiée explicitement, la disposition de l’application détermine la taille appropriée pour que le SVG soit décodé.

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

Remarques

SvgImageSource vous permet d’utiliser une source SVG à afficher à l’aide d’un ImageBrush ou directement dans un contrôle Image . SvgImageSource prend en charge le mode statique sécurisé à partir de la spécification SVG et ne prend pas en charge les animations ou les interactions. L’API Direct2D fournit la prise en charge du rendu SVG sous-jacent et pour plus d’informations sur la prise en charge des attributs et des éléments SVG spécifiques, consultez Prise en charge SVG. Pour plus d’informations sur les formats et sur l’utilisation de l’URI (Uniform Resource Identifier) pour accéder aux fichiers sources d’image provenant de ressources d’application, consultez Image et ImageBrush.

SvgImageSource représente une abstraction afin qu’une source SVG puisse être définie de manière asynchrone, mais toujours référencée dans le balisage XAML en tant que valeur de propriété, ou dans le code en tant qu’objet qui n’utilise pas la syntaxe pouvant être attendue. Lorsque vous créez un objet SvgImageSource dans le code, il n’a initialement aucune source valide. Vous devez ensuite définir sa source à l’aide de l’une des techniques suivantes :

  • Utilisez le constructeur SvgImageSource(Uri) plutôt que le constructeur par défaut. Bien qu’il s’agisse d’un constructeur, vous pouvez considérer cela comme ayant un comportement asynchrone implicite : svgImageSource ne sera pas prêt à être utilisé tant qu’il ne déclenchera pas un événement Ouvert qui indique une opération d’ensemble de sources asynchrone réussie.
  • Définissez la propriété UriSource . Comme avec le constructeur URI , cette action est implicitement asynchrone, et svgImageSource ne sera pas prêt à être utilisé tant qu’il ne déclenchera pas un événement Ouvert.
  • Utilisez SetSourceAsync(IRandomAccessStream). Cette méthode est explicitement asynchrone. Les propriétés dans lesquelles vous pouvez utiliser un SvgImageSource, comme Source, sont conçues pour ce comportement asynchrone et ne lèvent pas d’exceptions si elles sont définies à l’aide d’un SvgImageSource qui n’a pas encore de source complète. Plutôt que de gérer les exceptions, vous devez gérer les événements OpenFailed ou Ouverts directement sur SvgImageSource ou sur le contrôle qui utilise la source (si ces événements sont disponibles sur la classe de contrôle).

Ouvert et OpenFailed s’excluent mutuellement. Un événement ou l’autre est toujours déclenché chaque fois qu’un objet SvgImageSource a sa valeur source définie ou réinitialisée.

Dimensionnement

En fonction de votre cas d’usage prévu, vous pouvez spécifier la taille d’un SvgImageSource de différentes manières :

  • Utilisez les propriétés RasterizePixelHeight et RasterizePixelWidth pour spécifier une hauteur et une largeur explicites en pixels logiques pour décoder la source SVG sur.
  • Si vous ne spécifiez pas de RasterizePixelHeight ou RasterizePixelWidth, la disposition de l’application dictera la taille de décodage tout en conservant le rapport d’aspect. Si aucune taille ne peut être déterminée à partir de la disposition de l’application, la source SVG est décodée à la taille maximale de la fenêtre.

Compatibilité des versions

La classe SvgImageSource n’est pas disponible avant Windows 10 version 1703. Si le paramètre « version minimale de la plateforme » de votre application dans Microsoft Visual Studio est inférieur à la « version introduite » indiquée dans le bloc Configuration requise plus loin dans cette page, vous ne pourrez pas utiliser SvgImageSource. Pour plus d’informations, consultez Code adaptatif version.

Pour éviter les exceptions lorsque votre application s’exécute sur des versions précédentes de Windows 10, ne définissez pas cette propriété en XAML ou ne l’utilisez pas sans effectuer de case activée d’exécution. Cet exemple montre comment utiliser la classe ApiInformation pour case activée la présence de cette classe avant de l’utiliser.

Constructeurs

SvgImageSource()

Initialise une nouvelle instance de la classe SvgImageSource.

SvgImageSource(Uri)

Initialise une nouvelle instance de la classe SvgImageSource à l’aide de l’URI (Uniform Resource Identifier) fourni.

Propriétés

Dispatcher

Retourne null toujours dans une application SDK d'application Windows. Utilisez DispatcherQueue à la place.

(Hérité de DependencyObject)
DispatcherQueue

Obtient le DispatcherQueue auquel cet objet est associé. DispatcherQueue représente une installation qui peut accéder au DependencyObject sur le thread d’interface utilisateur, même si le code est initié par un thread autre que l’interface utilisateur.

(Hérité de DependencyObject)
RasterizePixelHeight

Obtient ou définit la hauteur à utiliser pour les opérations de rastérisation SVG.

RasterizePixelHeightProperty

Identifie la propriété de dépendance RasterizePixelHeight .

RasterizePixelWidth

Obtient ou définit la largeur à utiliser pour les opérations de rastérisation SVG.

RasterizePixelWidthProperty

Identifie la propriété de dépendance RasterizePixelWidth .

UriSource

Obtient ou définit l’URI (Uniform Resource Identifier) du fichier source SVG qui a généré ce SvgImageSource.

UriSourceProperty

Identifie la propriété de dépendance UriSource .

Méthodes

ClearValue(DependencyProperty)

Efface la valeur locale d’une propriété de dépendance.

(Hérité de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Retourne toute valeur de base établie pour une propriété de dépendance, qui s’applique dans les cas où une animation n’est pas active.

(Hérité de DependencyObject)
GetValue(DependencyProperty)

Retourne la valeur effective actuelle d’une propriété de dépendance à partir d’un objet DependencyObject.

(Hérité de DependencyObject)
ReadLocalValue(DependencyProperty)

Retourne la valeur locale d’une propriété de dépendance, si une valeur locale est définie.

(Hérité de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Inscrit une fonction de notification pour écouter les modifications apportées à un DependencyProperty spécifique sur ce instance DependencyObject.

(Hérité de DependencyObject)
SetSourceAsync(IRandomAccessStream)

Définit le SVG source pour un SvgImageSource en accédant à un flux et en traitant le résultat de manière asynchrone.

SetValue(DependencyProperty, Object)

Définit la valeur locale d’une propriété de dépendance sur un DependencyObject.

(Hérité de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annule une notification de modification précédemment inscrite en appelant RegisterPropertyChangedCallback.

(Hérité de DependencyObject)

Événements

Opened

Se produit lorsque la source SVG est téléchargée et décodée sans échec.

OpenFailed

Se produit lorsqu’une erreur est associée à la récupération ou au format SVG.

S’applique à