web-dev-qa-db-fra.com

Qu'est-ce que XMLNS dans chaque fichier WPF?

Qu'est-ce que xmlns?

Quel rôle joue-t-il dans un fichier XAML lorsque nous créons un projet WPF?

44
Embedd_Khurja

Et vous utilisez XMLNS pour faire référence à vos propres espaces de noms dans votre XAML. L'une des premières choses que je fais lors de la création d'un nouveau projet WPF consiste à ajouter une référence à l'espace de noms de projet:

xmlns:local="clr-namespace:MyWpfProject"

Maintenant, j'ai accès à toutes les classes que je peux créer dans mon projet (comme Igueconverters et DataMplatesLectors) en utilisant le préfixe "local:"

<local:BooleanToColorConverter x:Key="booleanToColorConverter" DefaultBrush="Green" HighlightBrush="Red" />

Bien sûr, vous n'avez pas à utiliser "local", vous pouvez le nommer ce que vous voulez. Et vous pouvez ajouter des références à tout autre espace de noms dont vous avez besoin de la même manière.

22
Joel Cochran

Vous pouvez également mapper plusieurs espaces de noms CLR dans un espace de noms XML en ajoutant XmlnsDefinitionAttribute à vos assemblys. C'est ce que l'équipe WPF a fait, en mappant de nombreux espaces de noms sous System.Windows comme celui-ci:

[XmlnsDefinitionAttribute(
    "http://schemas.Microsoft.com/winfx/2006/xaml/presentation", 
    "System.Windows.Controls")]
[XmlnsDefinitionAttribute(
    "http://schemas.Microsoft.com/winfx/2006/xaml/presentation", 
    "System.Windows.Ink")]

Cette syntaxe peut simplifier votre XAML, mais veillez à ne pas avoir de classes avec le même nom dans les espaces de noms CLR que vous fusionnez.

12
Anthony Brien

Comme extrait de MSDN L'élément racine contient également les attributs XMLNS et XMLNS: x. Ces attributs indiquent à un processeur XAML que les espaces de noms XML contiennent les définitions d'élément pour les éléments que le balisage fera référence. L'attribut XMLNS indique spécifiquement l'espace de noms XML par défaut.

Cette utilisation de XMLNS pour définir une étendue d'utilisation et de mappage est cohérente avec la spécification XML 1.0.

J'espère que cela t'aides.

6
Bryan Bailliache