Compartilhar via


CustomXamlResourceLoader Classe

Definição

Habilita o carregamento de dicionários de recursos personalizados como fontes. Substitua GetResource para fornecer a lógica que um analisador XAML pode usar para pesquisar os recursos necessários no tempo de carregamento.

/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CustomXamlResourceLoader
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class CustomXamlResourceLoader
Public Class CustomXamlResourceLoader
Herança
Object IInspectable CustomXamlResourceLoader
Atributos

Comentários

CustomXamlResourceLoader dá suporte a um uso {CustomResource}de extensão de marcação . Essa extensão de marcação é exclusiva da estrutura XAML Windows Runtime (ela não existia em tecnologias XAML precursoras, como Windows Presentation Foundation (WPF) e Microsoft Silverlight.)

O uso de um {CustomResource} não funciona por padrão (a implementação básica do GetResource está incompleta). Para fazer uma referência de {CustomResource} válida, você deve executar estas 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 referência de sua classe na lógica de inicialização. Isso deve acontecer antes de ser carregado qualquer XAML de nível de página, que inclui o uso da extensão {CustomResource}. Um local para definir CustomXamlResourceLoader.Current é o construtor da subclasse Application gerado para você nos modelos code-behind de App.xaml.
  3. Agora você pode usar as extensões {CustomResource} no XAML que seu aplicativo carrega como páginas, ou de dentro de dicionários de recursos XAML.

A extensão de marcação {CustomResource} pode ser usada do XAML de maneira semelhante à extensão de marcação {StaticResource}, que executa a pesquisa de recursos interna de vários locais do ResourceDictionary. A diferença é que o próprio aplicativo implementa a lógica de pesquisa de recursos para um uso de extensão de marcação {CustomResource} fornecendo um carregador de recursos personalizado. Para implementar o carregador de recursos personalizado, o aplicativo deve fornecer uma classe derivada de CustomXamlResourceLoader e substituir o método GetResource . O aplicativo deve registrar seu carregador de recursos personalizado definindo a propriedade estática CustomXamlResourceLoader.Current como uma instância de sua classe de carregador de recursos personalizado. Esse registro deve ser feito em um thread de interface do usuário XAML antes de qualquer análise de XAML que use a extensão de marcação {CustomResource}. Se o aplicativo usar vários threads de interface do usuário, um registro separado deverá ser feito em cada um.

A maneira como o CustomXamlResourceLoader armazena seus recursos provavelmente não está relacionada ao ResourceDictionary . Normalmente, além das substituições necessárias, sua classe CustomXamlResourceLoader forneceria métodos internos ou públicos que permitem armazenar, chavear e trabalhar com os itens de recurso em uma coleção subjacente.

Construtores

CustomXamlResourceLoader()

Inicializa uma nova instância da classe CustomXamlResourceLoader .

Propriedades

Current

Retorna a instância ativa de CustomXamlResourceLoader .

Métodos

GetResource(String, String, String, String)

Quando substituído em uma classe derivada, especifica a lógica de pesquisa de recursos para esse CustomXamlResourceLoader. Dada uma ID de recurso e algumas informações de tipo sobre o resultado esperado, retorna o recurso solicitado.

Aplica-se a

Confira também