Partager via


CustomXamlResourceLoader Classe

Définition

Active le chargement de dictionnaires de ressources personnalisés en tant que sources. Remplacez GetResource pour fournir la logique qu’un analyseur XAML peut utiliser pour rechercher les ressources nécessaires au moment du chargement.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 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(Windows.Foundation.UniversalApiContract), 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
Héritage
Object IInspectable CustomXamlResourceLoader
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Remarques

CustomXamlResourceLoader prend en charge l’utilisation d’une extension de {CustomResource}balisage . Cette extension de balisage est propre à l’infrastructure XAML Windows Runtime (elle n’existait pas dans les technologies XAML précurseures telles que Windows Presentation Foundation (WPF) et Microsoft Silverlight.)

L’utilisation de {CustomResource} ne fonctionne pas par défaut (l’implémentation de base de GetResource est incomplète). Pour créer une référence valide à {CustomResource}, vous devez effectuer chacune des étapes suivantes :

  1. Dérivez une classe personnalisée de CustomXamlResourceLoader et substituez la méthode GetResource. N’appelez pas la base dans l’implémentation.
  2. Définissez CustomXamlResourceLoader.Current de manière à référencer votre classe dans une logique d’initialisation. Cette opération doit intervenir avant le chargement de tout code XAML de niveau page comprenant l’utilisation d’une extension {CustomResource}. Vous pouvez définir CustomXamlResourceLoader.Current dans le constructeur de sous-classe Application qui est automatiquement généré dans les modèles code-behind App.xaml.
  3. Vous pouvez à présent utiliser des extensions {CustomResource} dans le XAML que votre application charge en tant que pages, ou à partir de dictionnaires de ressources XAML.

L’extension de balisage {CustomResource} peut être utilisée à partir de XAML de la même manière que l’extension de balisage {StaticResource}, qui effectue une recherche de ressources intégrée à partir de différents emplacements ResourceDictionary . La différence est que l’application elle-même implémente la logique de recherche de ressources pour une utilisation de l’extension de balisage {CustomResource} en fournissant un chargeur de ressources personnalisé. Pour implémenter le chargeur de ressources personnalisé, l’application doit fournir une classe qui dérive de CustomXamlResourceLoader et remplacer la méthode GetResource . L’application doit inscrire son chargeur de ressources personnalisé en définissant la propriété statique CustomXamlResourceLoader.Current sur une instance de sa classe de chargeur de ressources personnalisées. Cette inscription doit être effectuée sur un thread d’interface utilisateur XAML avant toute analyse de XAML qui utilise l’extension de balisage {CustomResource}. Si l’application utilise plusieurs threads d’interface utilisateur, une inscription distincte doit être effectuée sur chacun d’eux.

La façon dont CustomXamlResourceLoader stocke ses ressources n’est probablement pas liée à ResourceDictionary du tout. En règle générale, en plus des remplacements requis, votre classe CustomXamlResourceLoader fournit des méthodes internes ou publiques qui permettent de stocker, de keying et d’utiliser les éléments de ressources d’une collection sous-jacente.

Constructeurs

CustomXamlResourceLoader()

Initialise une nouvelle instance de la classe CustomXamlResourceLoader.

Propriétés

Current

Retourne le instance CustomXamlResourceLoader actif.

Méthodes

GetResource(String, String, String, String)

En cas de substitution dans une classe dérivée, spécifie la logique de recherche de ressources pour ce CustomXamlResourceLoader. En fonction d’un ID de ressource et d’informations de type sur le résultat attendu, retourne la ressource demandée.

S’applique à

Voir aussi