SvgImageSource Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona un objeto de origen para las propiedades que usan un origen de gráficos vectoriales escalables (SVG). Puede definir 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(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
- Herencia
- Atributos
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 se descodifique.
<Image Source="Assets/mysvg.svg"/>
Comentarios
SvgImageSource permite usar un origen SVG para mostrarse mediante un 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 compatibilidad con la representación svG subyacente y para obtener más información sobre la compatibilidad específica con 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 los 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 todavía se haga referencia a él en el marcado XAML como un valor de propiedad o en el código como un objeto que no use 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, se puede considerar que tiene un comportamiento asincrónico implícito: SvgImageSource no estará listo para su uso hasta que genere un evento Opened que indique una operación correcta del conjunto de orígenes 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).
OpenFailed yOpenFailed 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
En función 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 mientras 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 |
Siempre devuelve |
DispatcherQueue |
Obtiene el objeto |
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 mediante una llamada 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 formato SVG. |