SvgImageSource Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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(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
- Herança
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 Creators Update (introduzida na 10.0.15063.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v4.0)
|
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 fonte SVG para ser exibida usando um ImageBrush ou diretamente em um controle Image . 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 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 seja 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 fonte 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 Opened que indique uma operação bem-sucedida do conjunto de origem assíncrono.
- 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 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).
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 em.
- Se você não especificar um RasterizePixelHeight ou RasterizePixelWidth, o layout do aplicativo ditará o tamanho da decodificação enquanto ainda preserva a taxa de proporção. Se nenhum tamanho puder ser determinado no layout do aplicativo, a origem 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 seu aplicativo no Microsoft Visual Studio for menor que a "versão introduzida" mostrada no bloco Requisitos posteriormente nesta página, você não poderá usar 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 |
Obtém o CoreDispatcher ao qual esse objeto está associado. O CoreDispatcher 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 nessa 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 SVG é baixada e decodificada sem falha. |
OpenFailed |
Ocorre quando há um erro associado à recuperação ou ao formato SVG. |