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 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à
- 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 |
| DispatcherQueue |
Ottiene l'oggetto |
| 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. |