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.)

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 de subclasse de aplicativo 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.

A extensão de marcação {CustomResource} pode ser usada de 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 que deriva de CustomXamlResourceLoader e substituir o método GetResource . O aplicativo deve registrar seu carregador de recursos personalizado definindo a propriedade estática CustomXamlResourceLoader.Current para 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

Nome Description
CustomXamlResourceLoader()

Inicializa uma nova instância da classe CustomXamlResourceLoader .

Propriedades

Nome Description
Current

Retorna a instância ativa de CustomXamlResourceLoader .

Métodos

Nome Description
GetResource(String, String, String, String)

Quando substituído em uma classe derivada, especifica a lógica da 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