SvgImageSource Clase

Definición

Proporciona un objeto de origen para las propiedades que usan un origen de gráficos vectoriales escalables (SVG). Puede definir un SvgImageSource mediante un identificador uniforme de recursos (URI) que haga referencia a un archivo SVG o llamando a SetSourceAsync(IRandomAccessStream) y proporcionando una secuencia.

/// [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
Herencia
Object IInspectable DependencyObject ImageSource SvgImageSource
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 Creators Update (se introdujo en la versión 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v4.0)

Ejemplos

Este es un ejemplo de cómo establecer el origen de una imagen en un archivo SVG. Dado que no hay ningún alto o ancho especificado explícitamente, el diseño de la aplicación determinará el tamaño adecuado para que el SVG descodifique.

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

Comentarios

SvgImageSource permite usar un origen SVG para mostrarse mediante imageBrush o directamente en un control Image . SvgImageSource admite el modo estático seguro de la especificación SVG y no admite animaciones ni interacciones. La API de Direct2D proporciona la compatibilidad subyacente con la representación svG y para obtener más información sobre la compatibilidad específica de atributos y elementos SVG, consulta Compatibilidad con SVG. Para obtener más información sobre los formatos y cómo usar el identificador uniforme de recursos (URI) para acceder a los archivos de origen de imagen que proceden de recursos de la aplicación, consulta Image e ImageBrush.

SvgImageSource representa una abstracción para que un origen SVG se pueda establecer de forma asincrónica, pero seguir siendo al que se hace referencia en el marcado XAML como un valor de propiedad, o en el código como un objeto que no usa la sintaxis que se puede esperar. Al crear un objeto SvgImageSource en el código, inicialmente no tiene ningún origen válido. A continuación, debe establecer su origen mediante una de estas técnicas:

  • Use el constructor SvgImageSource(Uri) en lugar del constructor predeterminado. Aunque es un constructor, puede pensar en esto como tener un comportamiento asincrónico implícito: SvgImageSource no estará listo para su uso hasta que genere un evento Abierto que indique una operación correcta del conjunto de origen asincrónico.
  • Establezca la propiedad UriSource . Al igual que con el constructor Uri , esta acción es implícitamente asincrónica y SvgImageSource no estará lista para su uso hasta que genere un evento Opened .
  • Use SetSourceAsync(IRandomAccessStream). Este método es explícitamente asincrónico. Las propiedades en las que puede usar svgImageSource, como Source, están diseñadas para este comportamiento asincrónico y no producirán excepciones si se establecen mediante svgImageSource que aún no tiene un origen completo. En lugar de controlar las excepciones, debe controlar los eventos Open o OpenFailed en svgImageSource directamente o en el control que usa el origen (si esos eventos están disponibles en la clase de control).

Abierto y OpenFailed son mutuamente excluyentes. Siempre se generará un evento u otro siempre que un objeto SvgImageSource tenga su valor de origen establecido o restablecido.

Ajuste de tamaño

Dependiendo de su caso de uso previsto, puede especificar el tamaño de svgImageSource de varias maneras diferentes:

  • Use las propiedades RasterizePixelHeight y RasterizePixelWidth para especificar un alto y ancho explícitos en píxeles lógicos en los que descodificar el origen SVG.
  • Si no especifica un RasterizePixelHeight o RasterizePixelWidth, el diseño de la aplicación determinará el tamaño de descodificación, a la vez que conserva la relación de aspecto. Si no se puede determinar ningún tamaño desde el diseño de la aplicación, el origen SVG se descodificará en el tamaño máximo de la ventana.

Compatibilidad de versiones

La clase SvgImageSource no está disponible antes de Windows 10, versión 1703. Si la configuración "versión mínima de la plataforma" de la aplicación en Microsoft Visual Studio es menor que la "versión introducida" que se muestra en el bloque Requisitos más adelante en esta página, no podrá usar SvgImageSource. Para obtener más información, consulta Código adaptable de versión.

Para evitar excepciones cuando la aplicación se ejecute en versiones anteriores de Windows 10, no establezca esta propiedad en XAML ni úsela sin realizar una comprobación en tiempo de ejecución. En este ejemplo se muestra cómo usar la clase ApiInformation para comprobar la presencia de esta clase antes de usarla.

Constructores

SvgImageSource()

Inicializa una nueva instancia de la clase SvgImageSource .

SvgImageSource(Uri)

Inicializa una nueva instancia de la clase SvgImageSource mediante el identificador uniforme de recursos (URI) proporcionado.

Propiedades

Dispatcher

Obtiene el CoreDispatcher al que está asociado este objeto. CoreDispatcher representa una instalación que puede tener acceso a DependencyObject en el subproceso de interfaz de usuario incluso si un subproceso que no es de interfaz de usuario inicia el código.

(Heredado de DependencyObject)
RasterizePixelHeight

Obtiene o establece el alto que se va a usar para las operaciones de rasterización SVG.

RasterizePixelHeightProperty

Identifica la propiedad de dependencia RasterizePixelHeight .

RasterizePixelWidth

Obtiene o establece el ancho que se va a usar para las operaciones de rasterización SVG.

RasterizePixelWidthProperty

Identifica la propiedad de dependencia RasterizePixelWidth .

UriSource

Obtiene o establece el identificador uniforme de recursos (URI) del archivo de origen SVG que generó este svgImageSource.

UriSourceProperty

Identifica la propiedad de dependencia UriSource .

Métodos

ClearValue(DependencyProperty)

Borra el valor local de una propiedad de dependencia.

(Heredado de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Devuelve cualquier valor base establecido para una propiedad de dependencia, que se aplicaría en los casos en los que una animación no está activa.

(Heredado de DependencyObject)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia de dependencyObject.

(Heredado de DependencyObject)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si se establece un valor local.

(Heredado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una función de notificación para escuchar los cambios en una dependencyProperty específica en esta instancia de DependencyObject .

(Heredado de DependencyObject)
SetSourceAsync(IRandomAccessStream)

Establece el SVG de origen para svgImageSource accediendo a una secuencia y procesando el resultado de forma asincrónica.

SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia en dependencyObject.

(Heredado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela una notificación de cambio registrada anteriormente llamando a RegisterPropertyChangedCallback.

(Heredado de DependencyObject)

Eventos

Opened

Se produce cuando el origen SVG se descarga y descodifica sin errores.

OpenFailed

Se produce cuando hay un error asociado a la recuperación o el formato SVG.

Se aplica a