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:
- Derive uma classe personalizada de CustomXamlResourceLoader e substitua o método GetResource. Não chame a base na implementação.
- 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. - 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.