Share via


Espaces de noms XAML

XAML utilise l’attribut XML xmlns pour les déclarations d’espace de noms. Il existe deux déclarations d’espace de noms XAML qui se trouvent toujours dans l’élément racine d’un fichier XAML. La première définit l’espace de noms par défaut :

xmlns="http://schemas.microsoft.com/dotnet/2021/maui"

L’espace de noms par défaut spécifie que les éléments définis dans le fichier XAML sans préfixe font référence à des classes .NET Multi-platform App UI (MAUI .NET), telles que ContentPage, Label et Button.

La seconde déclaration d’espace de noms utilise le préfixe x :

xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"

XAML utilise des préfixes pour déclarer des espaces de noms autres que ceux par défaut, le préfixe étant utilisé lorsque des types sont référencés dans l’espace de noms. La déclaration d’espace de noms x spécifie que les éléments définis dans le code XAML avec un préfixe x sont utilisés pour les éléments et attributs intrinsèques au code XAML (en particulier la spécification XAML 2009).

Le tableau suivant présente les constructions x prises en charge par .NET MAUI :

Construction Description
x:Arguments Spécifie les arguments de constructeur pour un constructeur qui n’est pas un constructeur par défaut ou pour une déclaration d’objet de méthode de fabrique.
x:Class Spécifie l’espace de noms et le nom de classe pour une classe définie en XAML. Le nom de la classe doit correspondre au nom de classe du fichier code-behind. Notez que cette construction ne peut apparaître que dans l’élément racine d’un fichier XAML.
x:ClassModifier Spécifie le niveau d’accès pour la classe générée dans l’assembly.
x:DataType Spécifie le type de l’objet auquel l’élément XAML, et ses enfants, seront liés.
x:FactoryMethod Spécifie une méthode de fabrique qui peut être utilisée pour initialiser un objet.
x:FieldModifier Spécifie le niveau d’accès pour les champs générés pour les éléments XAML nommés.
x:Key Spécifie une clé définie par l’utilisateur unique pour chaque ressource dans un ResourceDictionary. La valeur de la clé est utilisée pour récupérer la ressource XAML et sert généralement d’argument pour l’extension de balisage StaticResource.
x:Name Spécifie un nom d’objet de runtime pour l’élément XAML. Le paramètre x:Name est similaire à la déclaration d’une variable dans le code.
x:TypeArguments Spécifie les arguments de type générique au constructeur d’un type générique.

Pour plus d’informations sur l’attribut x:ClassModifier, consultez Modificateurs de classes. Pour plus d’informations sur l’attribut x:DataType, consultez Liaisons compilées. Pour plus d’informations sur l’attribut x:FieldModifier, consultez Modificateurs de champs. Pour plus d’informations sur les attributs x:Arguments et x:FactoryMethod, consultez Passer des arguments. Pour plus d’informations sur l’attribut x:TypeArguments, consultez Génériques.

Remarque

En plus des constructions répertoriées ci-dessus, .NET MAUI inclut également des extensions de balisage qui peuvent être consommées via le préfixe d’espace de noms x. Pour plus d’informations, consultez Consommer des extensions de balisage XAML.

En XAML, les déclarations d’espace de noms héritent de l’élément enfant de l’élément parent. Par conséquent, lors de la définition d’un espace de noms dans l’élément racine d’un fichier XAML, tous les éléments de ce fichier héritent de la déclaration d’espace de noms.

Déclarer des espaces de noms pour les types

Les types peuvent être référencés en XAML en déclarant un espace de noms XAML avec un préfixe, en spécifiant le nom de l’espace de noms CLR (Common Language Runtime) dans la déclaration d’espace de noms et en spécifiant éventuellement un nom d’assembly. Pour ce faire, définissez des valeurs pour les mots clés suivants dans la déclaration d’espace de noms :

  • clr-namespace: ou using: – l’espace de noms CLR déclaré dans l’assembly qui contient les types à exposer en tant qu’éléments XAML. Ce mot clé est obligatoire.
  • assembly= – l’assembly qui contient l’espace de noms CLR référencé. Cette valeur est le nom de l’assembly, sans l’extension de fichier. Le chemin de l’assembly doit être établi comme référence dans le fichier projet qui contient le fichier XAML qui référencera l’assembly. Ce mot clé peut être omis si la valeur clr-namespace se trouve dans le même assembly que le code d’application qui référence les types.

Remarque

Le caractère séparant le jeton clr-namespace ou using de sa valeur est un signe deux-points, tandis que le caractère séparant le jeton assembly de sa valeur est un signe égal. Le caractère à utiliser entre les deux jetons est un point-virgule.

L’exemple de code suivant montre une déclaration d’espace de noms XAML :

<ContentPage ... xmlns:local="clr-namespace:MyMauiApp">
  ...
</ContentPage>

Cela peut également être écrit comme ceci :

<ContentPage ... xmlns:local="using:MyMauiApp">
  ...
</ContentPage>

Le préfixe local est une convention utilisée pour indiquer que les types dans l’espace de noms sont locaux au niveau de l’application. Sinon, si les types se trouvent dans un autre assembly, le nom de l’assembly doit également être défini dans la déclaration d’espace de noms :

<ContentPage ... xmlns:controls="clr-namespace:Controls;assembly=MyControlLibrary" ...>
  ...
</ContentPage>

Le préfixe d’espace de noms est ensuite spécifié lors de la déclaration d’une instance d’un type à partir d’un espace de noms importé :

<controls:Expander IsExpanded="True">
    ...
</controls:Expander>

Pour plus d’informations sur la définition d’un schéma d’espace de noms personnalisé, consultez Schémas d’espace de noms personnalisés.