Compartilhar via


Extensão de marcação {CustomResource}

Fornece um valor para qualquer atributo XAML avaliando uma referência a um recurso proveniente de uma implementação de pesquisa de recursos personalizada. A pesquisa de recursos é executada por uma implementação de classe CustomXamlResourceLoader.

Uso do atributo XAML

<object property="{CustomResource key}" .../>

Valores XAML

Termo Descrição
chave A chave para o recurso solicitado. A forma como a chave é inicialmente atribuída é específica para a implementação da classe CustomXamlResourceLoader que está atualmente registrada para uso.

Comentários

CustomResource é uma técnica para obter valores definidos em outro lugar em um repositório de recursos personalizado. Essa técnica é relativamente avançada e não é usada pela maioria dos cenários de aplicativos do Tempo de Execução do Windows.

A forma como um CustomResource é resolvida para um dicionário de recursos não é descrita neste tópico, pois isso pode variar muito, dependendo de como CustomXamlResourceLoader é implementado.

O método GetResource da implementação CustomXamlResourceLoader é chamado pelo analisador XAML do Tempo de Execução do Windows sempre que encontra um {CustomResource} uso na marcação. O resourceId que é passado para GetResource vem do argumento de chave e os outros parâmetros de entrada vêm do contexto, como a qual propriedade o uso é aplicado.

Um {CustomResource} uso não funciona por padrão (a implementação base de GetResource está incompleta). Para fazer uma referência válida {CustomResource} , você deve executar cada uma destas etapas:

  1. Derive uma classe personalizada de CustomXamlResourceLoader e substitua o método GetResource. Não chame a base na implementação.
  2. Defina CustomXamlResourceLoader.Current para fazer referência à sua classe na lógica de inicialização. Isso deve acontecer antes que qualquer XAML no nível da página que inclua o uso da {CustomResource} extensão seja carregado. Um lugar para definir CustomXamlResourceLoader.Current é no construtor de subclasse Application gerado para você nos modelos code-behind App.xaml.
  3. Agora você pode usar {CustomResource} extensões no XAML que seu aplicativo carrega como páginas ou de dentro de dicionários de recursos XAML.

CustomResource é uma extensão de marcação. Extensões de marcação são tipicamente implementadas quando existe um requisito que permite que valores de atributo sejam diferentes de valores literais ou nomes de manipuladores, e o requisito é mais global do que simplesmente colocar conversores de tipo em certos tipos ou propriedades. Todas as extensões de marcação em XAML usam os caracteres "{" e "}" em sua sintaxe de atributo, que é a convenção pela qual um processador XAML reconhece que uma extensão de marcação deve processar o atributo.