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 personalizada de pesquisa de recursos. A pesquisa de recursos é executada por uma implementação de classe CustomXamlResourceLoader .

Uso do atributo XAML

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

Valores XAML

Prazo Description
chave A chave do recurso solicitado. Como a chave é inicialmente atribuída é específica para a implementação da classe CustomXamlResourceLoader que está atualmente registrada para uso.

Observações

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 aplicativo do Windows Runtime.

Como um CustomResource é resolvido em um dicionário de recursos não é descrito neste tópico, pois isso pode variar amplamente dependendo de como CustomXamlResourceLoader é implementado.

O método GetResource da implementação CustomXamlResourceLoader é chamado pelo analisador XAML do Windows Runtime sempre que encontra um {CustomResource} uso na marcação. A resourceId passada para GetResource vem do argumento chave e os outros parâmetros de entrada vêm do contexto, como a propriedade à qual 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. Derivar uma classe personalizada de CustomXamlResourceLoader e substituir o método GetResource . Não chame a classe base na implementação.
  2. Defina CustomXamlResourceLoader.Current para referenciar sua classe na lógica de inicialização. Isso deve acontecer antes que qualquer XAML de nível de página que inclua o uso da extensão {CustomResource} seja carregado. Um local para definir CustomXamlResourceLoader.Current está no construtor da subclasse Application que é 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. As extensões de marcação normalmente são implementadas quando há um requisito para escapar de valores de atributo que não sejam valores literais ou nomes de manipulador, e o requisito é mais global do que apenas colocar conversores de tipo em determinados tipos ou propriedades. Todas as extensões de marcação no 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.