Linguaggio

SvgImageSource Classe

Definizione

Fornisce un oggetto di origine per le proprietà che utilizzano un'origine SVG (Scalable Vector Graphics). È possibile definire svgImageSource usando un URI (Uniform Resource Identifier) che fa riferimento a un file SVG o chiamando SetSourceAsync(IRandomAccessStream) e fornendo un flusso.

/// [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
Ereditarietà
Object IInspectable DependencyObject ImageSource SvgImageSource
Attributi

Esempio

Ecco un esempio di come impostare l'origine di un'immagine su un file SVG. Poiché non è specificata in modo esplicito l'altezza o la larghezza, il layout dell'applicazione determinerà le dimensioni appropriate per il svg da decodificare.

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

Commenti

SvgImageSource consente di usare un'origine SVG da visualizzare usando un oggetto ImageBrush o direttamente in un controllo Image . SvgImageSource supporta la modalità statica sicura dalla specifica SVG e non supporta animazioni o interazioni. L'API Direct2D fornisce il supporto per il rendering SVG sottostante e per altre informazioni sul supporto specifico di elementi e attributi SVG, vedi Supporto SVG. Per altre info sui formati e su come usare l'URI (Uniform Resource Identifier) per accedere ai file di origine delle immagini provenienti dalle risorse dell'app, vedi Image e ImageBrush.

SvgImageSource rappresenta un'astrazione in modo che un'origine SVG possa essere impostata in modo asincrono, ma che venga comunque fatto riferimento nel markup XAML come valore di proprietà o nel codice come oggetto che non usa la sintassi awaitable. Quando si crea un oggetto SvgImageSource nel codice, inizialmente non ha un'origine valida. È quindi necessario impostarne l'origine usando una di queste tecniche:

  • Usare il costruttore SvgImageSource(Uri) anziché il costruttore predefinito. Anche se si tratta di un costruttore, è possibile considerarlo come un comportamento asincrono implicito: SvgImageSource non sarà pronto per l'uso fino a quando non genera un evento Opened che indica un'operazione del set di origine asincrona riuscita.
  • Impostare la proprietà UriSource . Come per il costruttore URI , questa azione è implicitamente asincrona e SvgImageSource non sarà pronta per l'uso fino a quando non genera un evento Opened .
  • Usare SetSourceAsync(IRandomAccessStream). Questo metodo è asincrono in modo esplicito. Le proprietà in cui è possibile usare svgImageSource, ad esempio Source, sono progettate per questo comportamento asincrono e non generano eccezioni se sono impostate usando svgImageSource che non ha ancora un'origine completa. Anziché gestire le eccezioni, è consigliabile gestire gli eventi Opened o OpenFailed direttamente in SvgImageSource o nel controllo che usa l'origine (se tali eventi sono disponibili nella classe di controllo).

Opene OpenFailed si escludono a vicenda. Un evento o l'altro verrà sempre generato ogni volta che un oggetto SvgImageSource ha il valore di origine impostato o reimpostato.

Dimensionamento

A seconda del caso d'uso previsto, è possibile specificare le dimensioni di svgImageSource in diversi modi:

  • Usare le proprietà RasterizePixelHeight e RasterizePixelWidth per specificare un'altezza e una larghezza esplicite in pixel logici per decodificare l'origine SVG in corrispondenza di .
  • Se non specifichi rasterizePixelHeight o RasterizePixelWidth, il layout dell'applicazione determinerà le dimensioni della decodifica mantenendo comunque le proporzioni. Se non è possibile determinare alcuna dimensione dal layout dell'applicazione, l'origine SVG verrà decodificata in base alle dimensioni massime della finestra.

Compatibilità delle versioni

La classe SvgImageSource non è disponibile prima di Windows 10 versione 1703. Se l'impostazione "versione minima della piattaforma" dell'app in Microsoft Visual Studio è minore della "versione introdotta" visualizzata nel blocco Requisiti più avanti in questa pagina, non sarà possibile usare SvgImageSource. Per altre info, vedi Codice adattivo per la versione.

Per evitare eccezioni quando l'app viene eseguita nelle versioni precedenti di Windows 10, non impostare questa proprietà in XAML o usarla senza eseguire un controllo di runtime. Questo esempio mostra come usare la classe ApiInformation per verificare la presenza di questa classe prima di usarla.

Costruttori

Nome Descrizione
SvgImageSource()

Inizializza una nuova istanza della classe SvgImageSource .

SvgImageSource(Uri)

Inizializza una nuova istanza della classe SvgImageSource usando l'URI (Uniform Resource Identifier) fornito.

Proprietà

Nome Descrizione
Dispatcher

Restituisce null sempre in un'app di SDK per app di Windows. Usare invece DispatcherQueue .

(Ereditato da DependencyObject)
DispatcherQueue

Ottiene l'oggetto DispatcherQueue a cui è associato questo oggetto. Rappresenta DispatcherQueue una funzionalità che può accedere al nel thread dell'interfaccia DependencyObject utente anche se il codice viene avviato da un thread non dell'interfaccia utente.

(Ereditato da DependencyObject)
RasterizePixelHeight

Ottiene o imposta l'altezza da utilizzare per le operazioni di rasterizzazione SVG.

RasterizePixelHeightProperty

Identifica la proprietà di dipendenza RasterizePixelHeight .

RasterizePixelWidth

Ottiene o imposta la larghezza da utilizzare per le operazioni di rasterizzazione SVG.

RasterizePixelWidthProperty

Identifica la proprietà di dipendenza RasterizePixelWidth .

UriSource

Ottiene o imposta l'URI (Uniform Resource Identifier) del file di origine SVG che ha generato svgImageSource.

UriSourceProperty

Identifica la proprietà di dipendenza UriSource .

Metodi

Nome Descrizione
ClearValue(DependencyProperty)

Cancella il valore locale di una proprietà di dipendenza.

(Ereditato da DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Restituisce qualsiasi valore di base stabilito per una proprietà di dipendenza, che si applica nei casi in cui un'animazione non è attiva.

(Ereditato da DependencyObject)
GetValue(DependencyProperty)

Restituisce il valore effettivo corrente di una proprietà di dipendenza da dependencyObject.

(Ereditato da DependencyObject)
ReadLocalValue(DependencyProperty)

Restituisce il valore locale di una proprietà di dipendenza, se è impostato un valore locale.

(Ereditato da DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una funzione di notifica per l'ascolto delle modifiche a una dipendenza specifica in questa istanza dependencyObject .

(Ereditato da DependencyObject)
SetSourceAsync(IRandomAccessStream)

Imposta il file SVG di origine per svgImageSource accedendo a un flusso ed elaborando il risultato in modo asincrono.

SetValue(DependencyProperty, Object)

Imposta il valore locale di una proprietà di dipendenza in un Oggetto DependencyObject.

(Ereditato da DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback.

(Ereditato da DependencyObject)

Eventi

Nome Descrizione
Opened

Si verifica quando l'origine SVG viene scaricata e decodificata senza errori.

OpenFailed

Si verifica quando si verifica un errore associato al recupero o al formato SVG.

Si applica a