Partilhar via


SvgImageSource Classe

Definição

Fornece um objeto de origem para propriedades que usam uma origem SVG (Elementos Gráficos Vetoriais Escalonáveis). Você pode definir um SvgImageSource usando um URI (Uniform Resource Identifier) que faz referência a um arquivo SVG ou chamando SetSourceAsync(IRandomAccessStream) e fornecendo um fluxo.

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

Exemplos

Aqui está um exemplo de como definir a origem de uma imagem para um arquivo SVG. Como não há nenhuma altura ou largura especificada explicitamente, o layout do aplicativo ditará o tamanho apropriado para o SVG decodificar.

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

Comentários

SvgImageSource permite que você use uma origem SVG para ser exibida usando um ImageBrush ou diretamente em um controle Image . O SvgImageSource dá suporte ao modo estático seguro da especificação SVG e não dá suporte a animações ou interações. A API do Direct2D fornece o suporte de renderização SVG subjacente e, para obter mais informações sobre o elemento SVG específico e o suporte a atributos, consulte Suporte a SVG. Para obter mais informações sobre formatos e como usar o URI (Uniform Resource Identifier) para acessar arquivos de origem de imagem provenientes de recursos de aplicativo, consulte Image e ImageBrush.

O SvgImageSource representa uma abstração para que uma origem SVG possa ser definida de forma assíncrona, mas ainda assim ser referenciada na marcação XAML como um valor de propriedade ou no código como um objeto que não usa sintaxe aguardável. Quando você cria um objeto SvgImageSource no código, ele inicialmente não tem uma origem válida. Em seguida, você deve definir sua origem usando uma destas técnicas:

  • Use o construtor SvgImageSource(Uri) em vez do construtor padrão. Embora seja um construtor, você pode pensar nisso como tendo um comportamento assíncrono implícito: o SvgImageSource não estará pronto para uso até que ele gere um evento Open que indique uma operação bem-sucedida do conjunto de origem assíncrona.
  • Defina a propriedade UriSource . Assim como acontece com o construtor Uri , essa ação é implicitamente assíncrona e o SvgImageSource não estará pronto para uso até gerar um evento Open .
  • Use SetSourceAsync(IRandomAccessStream). Esse método é explicitamente assíncrono. As propriedades em que você pode usar um SvgImageSource, como Source, foram projetadas para esse comportamento assíncrono e não gerarão exceções se elas estiverem definidas usando um SvgImageSource que ainda não tenha uma fonte completa. Em vez de lidar com exceções, você deve manipular eventos Open ou OpenFailed diretamente no SvgImageSource ou no controle que usa a origem (se esses eventos estiverem disponíveis na classe de controle).

Aberto e OpenFailed são mutuamente exclusivos. Um evento ou outro sempre será gerado sempre que um objeto SvgImageSource tiver seu valor de origem definido ou redefinido.

Dimensionamento

Dependendo do caso de uso pretendido, você pode especificar o tamanho de um SvgImageSource de várias maneiras diferentes:

  • Use as propriedades RasterizePixelHeight e RasterizePixelWidth para especificar uma altura e largura explícitas em pixels lógicos para decodificar a origem SVG.
  • Se você não especificar um RasterizePixelHeight ou RasterizePixelWidth, o layout do aplicativo ditará o tamanho do decodificado enquanto ainda preserva a taxa de proporção. Se nenhum tamanho puder ser determinado no layout do aplicativo, a origem do SVG será decodificada para o tamanho máximo da janela.

Compatibilidade de versões

A classe SvgImageSource não está disponível antes do Windows 10, versão 1703. Se a configuração de "versão mínima da plataforma" do aplicativo no Microsoft Visual Studio for menor que a "versão introduzida" mostrada no bloco Requisitos mais adiante nesta página, você não poderá usar o SvgImageSource. Para obter mais informações, consulte Código adaptável de versão.

Para evitar exceções quando seu aplicativo é executado em versões anteriores do Windows 10, não defina essa propriedade em XAML nem use-a sem executar um runtime marcar. Este exemplo mostra como usar a classe ApiInformation para marcar para a presença dessa classe antes de usá-la.

Construtores

SvgImageSource()

Inicializa uma nova instância da classe SvgImageSource .

SvgImageSource(Uri)

Inicializa uma nova instância da classe SvgImageSource usando o URI (Uniform Resource Identifier) fornecido.

Propriedades

Dispatcher

Sempre retorna null em um aplicativo SDK do Aplicativo Windows. Em vez disso, use DispatcherQueue .

(Herdado de DependencyObject)
DispatcherQueue

Obtém o ao DispatcherQueue qual esse objeto está associado. O DispatcherQueue representa uma instalação que pode acessar o DependencyObject no thread da interface do usuário mesmo que o código seja iniciado por um thread que não seja da interface do usuário.

(Herdado de DependencyObject)
RasterizePixelHeight

Obtém ou define a altura a ser usada para operações de rasterização SVG.

RasterizePixelHeightProperty

Identifica a propriedade de dependência RasterizePixelHeight .

RasterizePixelWidth

Obtém ou define a largura a ser usada para operações de rasterização SVG.

RasterizePixelWidthProperty

Identifica a propriedade de dependência RasterizePixelWidth .

UriSource

Obtém ou define o URI (Uniform Resource Identifier) do arquivo de origem SVG que gerou esse SvgImageSource.

UriSourceProperty

Identifica a propriedade de dependência UriSource .

Métodos

ClearValue(DependencyProperty)

Limpa o valor local de uma propriedade de dependência.

(Herdado de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria nos casos em que uma animação não está ativa.

(Herdado de DependencyObject)
GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject.

(Herdado de DependencyObject)
ReadLocalValue(DependencyProperty)

Retorna o valor local de uma propriedade de dependência, se um valor local for definido.

(Herdado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra uma função de notificação para escutar alterações em uma DependencyProperty específica nesta instância dependencyObject .

(Herdado de DependencyObject)
SetSourceAsync(IRandomAccessStream)

Define o SVG de origem para um SvgImageSource acessando um fluxo e processando o resultado de forma assíncrona.

SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência em um DependencyObject.

(Herdado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback.

(Herdado de DependencyObject)

Eventos

Opened

Ocorre quando a origem do SVG é baixada e decodificada sem falha.

OpenFailed

Ocorre quando há um erro associado à recuperação ou ao formato SVG.

Aplica-se a