Idioma

SvgImageSource Classe

Definição

Fornece um objeto de origem para propriedades que usam uma origem SVG (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 explicitamente especificada, o layout do aplicativo ditará o tamanho apropriado para o SVG decodificar.

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

Comentários

O SvgImageSource permite que você use uma origem SVG para ser exibida usando um ImageBrush ou diretamente em um controle de imagem . 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 o Suporte ao 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 ser referenciada na marcação XAML como um valor de propriedade ou no código como um objeto que não usa sintaxe aguardada. Quando você cria um objeto SvgImageSource no código, ele inicialmente não tem nenhuma 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é gerar um evento Aberto que indique uma operação de conjunto de origem assíncrona bem-sucedida.
  • 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 Aberto .
  • Use SetSourceAsync(IRandomAccessStream). Esse método é explicitamente assíncrono. As propriedades em que você pode usar um SvgImageSource, como o Source, foram projetadas para esse comportamento assíncrono e não gerarão exceções se elas forem 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).

Open eOpenFailed 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 do layout do aplicativo, a origem SVG será decodificada para o tamanho máximo da janela.

Compatibilidade entre 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 do que a "versão introduzida" mostrada no bloco Requisitos posteriormente nesta página, você não poderá usar o SvgImageSource. Para obter mais informações, consulte o 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 ou use-a sem executar uma verificação de runtime. Este exemplo mostra como usar a classe ApiInformation para verificar a presença dessa classe antes de usá-la.

Construtores

Nome Description
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

Nome Description
Dispatcher

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

(Herdado de DependencyObject)
DispatcherQueue

Obtém o DispatcherQueue que este objeto está associado. Representa DispatcherQueue uma instalação que pode acessar o DependencyObject thread da interface do usuário mesmo se o código for 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

Nome Description
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 em 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 um DependencyProperty específico 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

Nome Description
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