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 une utilisation de l’extension {CustomResource}de balisage. Cette extension de balisage est unique pour l’infrastructure XAML Windows Runtime (elle n’existe pas dans les technologies XAML précurseurs telles que Windows Presentation Foundation (WPF) et Microsoft Silverlight.)
Une {CustomResource} utilisation ne fonctionne pas par défaut (l’implémentation de base de GetResource est incomplète). Pour effectuer une référence valide {CustomResource} , vous devez effectuer chacune des étapes suivantes :
- Dérivez une classe personnalisée de CustomXamlResourceLoader et remplacez la méthode GetResource . N’appelez pas la base dans l’implémentation.
- Définissez CustomXamlResourceLoader.Current pour référencer votre classe dans la logique d’initialisation. Cela doit se produire avant que n’importe quel CODE XAML au niveau de la page qui inclut l’utilisation de l’extension
{CustomResource}soit chargé. L’un des emplacements où définir CustomXamlResourceLoader.Current se trouve dans le constructeur de sous-classe Application qui est généré pour vous dans les modèles code-behind App.xaml. - Vous pouvez maintenant utiliser des
{CustomResource}extensions dans le code 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 façon 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 du code 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 chacune d’elles.
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 clér et d’utiliser les éléments de ressource dans une collection sous-jacente.
Constructeurs
| Nom | Description |
|---|---|
| CustomXamlResourceLoader() |
Initialise une nouvelle instance de la classe CustomXamlResourceLoader . |
Propriétés
| Nom | Description |
|---|---|
| Current |
Retourne l’instance CustomXamlResourceLoader active. |
Méthodes
| Nom | Description |
|---|---|
| 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. Étant donné un ID de ressource et des informations de type sur le résultat attendu, retourne la ressource demandée. |