CustomXamlResourceLoader Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Permet 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(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
- Héritage
- Attributs
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écurseurs 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 :
- Dérivez une classe personnalisée de CustomXamlResourceLoader et substituez la méthode GetResource. N’appelez pas la base dans l’implémentation.
- 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. - 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ée. 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 dans une collection sous-jacente.
Constructeurs
CustomXamlResourceLoader() |
Initialise une nouvelle instance de la classe CustomXamlResourceLoader. |
Propriétés
Current |
Retourne la instance CustomXamlResourceLoader active. |
Méthodes
GetResource(String, String, String, String) |
En cas de substitution dans une classe dérivée, spécifie la logique de recherche de ressource 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. |