Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Advertência
Este documento foi arquivado e o componente não está disponível na versão atual do Windows Community Toolkit.
Embora não existam planos imediatos para portar este componente para a versão 8.x, a comunidade está convidada a manifestar interesse ou a contribuir para a sua inclusão.
Para mais informações:
A documentação original segue-se abaixo.
O ImageCache fornece métodos e ferramentas para armazenar imagens numa pasta local temporária. O ImageCache também suporta uma camada opcional de cache em memória, que oferece melhor desempenho quando as mesmas imagens são solicitadas várias vezes (como em longas listas virtualizadas de imagens). Este tipo de cache está desativado por defeito, mas pode ser ativado definindo o MaxMemoryCacheSize para o tamanho desejado. Por exemplo: definir MaxMemoryCacheSize para 100 significa que 100 últimas imagens solicitadas ficarão armazenadas na memória para estarem instantaneamente disponíveis, sem leituras de disco.
Sintaxe
// Set cache duration
ImageCache.Instance.CacheDuration = TimeSpan.FromHours(24);
// Enable in-memory caching
ImageCache.Instance.MaxMemoryCacheCount = 100;
var distantUri = new Uri("https://www.myserver.com/image.jpg");
// Load a specific image from the cache. If the image is not in the cache, ImageCache will try to download and store it
var bitmapImage = await ImageCache.Instance.GetFromCacheAsync(distantUri);
// Clear the cache. Please note that you can provide a parameter to define a timespan from now to select cache entries to delete.
await ImageCache.Instance.ClearAsync();
' Set cache duration
ImageCache.Instance.CacheDuration = TimeSpan.FromHours(24)
' Enable in-memory caching
ImageCache.Instance.MaxMemoryCacheCount = 100
Dim distantUri = New Uri("https://www.myserver.com/image.jpg")
' Load a specific image from the cache. If the image is not in the cache, ImageCache will try to download and store it
Dim bitmapImage = Await ImageCache.Instance.GetFromCacheAsync(distantUri)
' Clear the cache. Please note that you can provide a parameter to define a timespan from now to select cache entries to delete.
Await ImageCache.Instance.ClearAsync()
Propriedades
| Propriedade | Tipo | Description |
|---|---|---|
| Duração da Cache | TimeSpan | Obtém ou define a duração de vida de cada entrada de cache |
| HttpClient | HttpClient | Obtém uma instância de HttpClient |
| Instância | ImageCache | Obtém propriedade pública única |
| MaintainContext | bool | Recebe ou define um valor que indica se o contexto deve ser mantido até que o tipo tenha sido instanciado ou não |
| MaxMemoryCacheCount | int | Obtém ou define o número máximo de armazenamento de itens em memória |
| Número de tentativas | uint | Obtém ou define o número de tentativas tentando garantir que o ficheiro está em cache |
Methods
| Methods | Tipo de Retorno | Description |
|---|---|---|
| ClearAsync() | Tarefa | Apaga todos os ficheiros da cache |
| ClearAsync (TimeSpan) | Tarefa | Anula o ficheiro se este tiver expirado |
| GetFileFromCacheAsync(Uri) | Arquivo de Armazenamento de Tarefas<> | Obtém o StorageFile que contém o item em cache para um dado Uri |
| GetFromCacheAsync(Uri, Boolean, CancellationToken, List<KeyValuePair<string, object>>) | Tarefa<T> | Recupera o item representado por Uri da cache. Se o item não for encontrado na cache, tentará ser descarregado e guardado antes de o devolver ao chamador |
| GetFromMemoryCache(Uri) | T | Recupera o item representado por Uri da cache em memória se este existir e não estiver desatualizado. Se o item não for encontrado ou estiver desatualizado, a instância padrão do tipo genérico é devolvida |
| PreCacheAsync (Uri, Boolean, Boolean, CancellationToken) | Tarefa | Assegura que o item representado por Uri está armazenado em cache |
| RemoveAsync(IEnumerable) | Tarefa | Itens removidos com base na lista de URI aprovados |
| RemoveExpiredAsync(Nullable) | Tarefa | Remove ficheiros em cache que expiraram |
Projeto de Exemplo
Fonte da página de exemplo do cache de imagens. Pode ver isto em ação na aplicação de exemplo do Windows Community Toolkit.
Requerimentos
| Família de dispositivos | Universal, 10.0.16299.0 ou superior |
|---|---|
| Namespace | Microsoft.Toolkit.Uwp |
| Pacote NuGet | Microsoft.Toolkit.Uwp |
API
.NET Community Toolkit