SvgImageSource Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce un oggetto di origine per le proprietà che usano un'origine SVG (Scalable Vector Graphics). È possibile definire svgImageSource usando un URI (Uniform Resource Identifier) che fa riferimento a un file SVG oppure chiamando SetSourceAsync(IRandomAccessStream) e fornendo un flusso.
/// [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
- Ereditarietà
- Attributi
Requisiti Windows
Famiglia di dispositivi |
Windows 10 Creators Update (è stato introdotto in 10.0.15063.0)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v4.0)
|
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 determina le dimensioni appropriate per il decodificare SVG.
<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 su specifici elementi SVG e supporto attributi, vedere Supporto SVG. Per altre informazioni sui formati e su come usare Uniform Resource Identifier (URI) per accedere ai file di origine delle immagini provenienti dalle risorse dell'app, vedere Image and ImageBrush.
SvgImageSource rappresenta un'astrazione in modo che un'origine SVG possa essere impostata in modo asincrono, ma che venga comunque fatto riferimento al markup XAML come valore della proprietà o nel codice come oggetto che non usa sintassi attendabile. Quando si crea un oggetto SvgImageSource nel codice, inizialmente non ha alcuna origine valida. È quindi consigliabile impostare l'origine usando una di queste tecniche:
- Usare il costruttore SvgImageSource(Uri) anziché il costruttore predefinito. Anche se è un costruttore, è possibile pensare a questo come avere un comportamento asincrono implicito: svgImageSource non sarà pronto per l'uso finché non genera un evento Open 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 finché non genera un evento Open .
- 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 genereranno eccezioni se vengono impostate usando un'origine SvgImageSource che non ha ancora un'origine completa. Invece di gestire le eccezioni, è necessario gestire gli eventi Open oOpenFailed direttamente sul controllo SvgImageSource o sul controllo che usa l'origine (se questi eventi sono disponibili nella classe di controllo).
Open e OpenFailed si escludono a vicenda. Un evento o l'altro verrà sempre generato ogni volta che un oggetto SvgImageSource ha il relativo valore di origine impostato o reimpostato.
Ridimensionamento
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 esplicita in pixel logici per decodificare l'origine SVG in corrispondenza.
- Se non si specifica un rasterizePixelHeight o RasterizePixelWidth, il layout dell'applicazione determina la dimensione del decodifica mentre mantiene le proporzioni. Se non è possibile determinare dimensioni dal layout dell'applicazione, l'origine SVG verrà decodificata alle dimensioni massime della finestra.
Compatibilità tra 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 informazioni, vedere Codice adattivo della 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. In questo esempio viene illustrato come usare la classe ApiInformation per verificare la presenza di questa classe prima di usarla.
Costruttori
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à
Dispatcher |
Ottiene CoreDispatcher associato a questo oggetto. CoreDispatcher rappresenta una struttura che può accedere a DependencyObject nel thread dell'interfaccia utente anche se il codice viene avviato da un thread non interfaccia utente. (Ereditato da DependencyObject) |
RasterizePixelHeight |
Ottiene o imposta l'altezza da usare per le operazioni di rasterizzazione SVG. |
RasterizePixelHeightProperty |
Identifica la proprietà di dipendenza RasterizePixelHeight . |
RasterizePixelWidth |
Ottiene o imposta la larghezza da usare 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 questo oggetto SvgImageSource. |
UriSourceProperty |
Identifica la proprietà di dipendenza UriSource . |
Metodi
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 un oggetto DependencyObject. (Ereditato da DependencyObject) |
ReadLocalValue(DependencyProperty) |
Restituisce il valore locale di una proprietà di dipendenza, se viene impostato un valore locale. (Ereditato da DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra una funzione di notifica per l'ascolto delle modifiche a un'istanza di DependencyObject specifica. (Ereditato da DependencyObject) |
SetSourceAsync(IRandomAccessStream) |
Imposta l'oggetto 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
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. |