Description de XAML

XAML est l'acronyme de eXtensible Application Markup Language.

C'est donc un langage à balises pour applications extensibles. Sont extensibles les applications avec l'ajout de composant pendant l'exécution et le langage lui-même avec de nouveaux composants.
Dans le nom XAML, la lettre A originellement représentait Avalon, le nom provisoire de la couche graphique de Windows Vista, renommée par la suite WPF (Windows Présentation Foundation).

XAML est un format XML dans lequel peuvent être intégrées des commandes, associées à des propriétés des éléments de la même façon que dans JavaScript:
Exemple: appel de la fonction OnClick() quand on clique sur le bouton.

<button
    Click="OnClick">
</button>

Il est aussi possible d'insérer des portions de code dans une balise propre, la balise "code".

Deux exemples: le programme le plus simple, et une application minimale mais complète. On voit la principale différence entre XAML et HTML 5, les propriétés de présentation font partie du code du premier, alors qu'elle sont séparées dans le second. Mais les deux sont des langages d'interface, et le code de l'application proprement dit est lui séparé dans les deux cas.

Exemples de code

Afficher le message "Salut le Monde!" :

<Page xmlns="">
  <TextBlock>
     Salut, le Monde!
  </TextBlock>
</Page> 

Une fenêtre complète :

<windows
    Width="600" Height="480" Text="Mon Programme">
  <FlowPanel>
    <Label Name="Montexte" FontSize="20">
        Mon application
    </label>
    <Button Width="80" Click="BoutonClic">
         Fermer
    </Button>
  </FlowPanel>
</windows> 

Le programme crée une fenêtre. Le titre affiché dans la barre supérieuse est "Mon Programme".
La fenêtre affiche le texte "Mon application" ainsi qu'un bouton "Fermer".
Quand on clique sur le bouton, la fonction BoutonClic() définie par le programmeur est exécutée.

Le nom de l'étiquette (label), "Montexte", n'est pas affiché, il sert à accéder à l'élément à partir d'un programme.

Noter que ce programme sera placé dans un fichier "exemple.xaml" tandis que le code, contenant la fonction BoutonClic() sera dans un autre fichier, un source C Sharp par exemple, que l'on peut nommer "exemple.cs".

Traitement du code source XAML

Le code est compilé en langage intermédiaire IL (Intermediate Language) de la plateforme .NET.
- Les balises deviennent des objets.
- Les propriétés deviennent des attributs.
Il est alors possible de traiter le code de la même façon que pour les classes du langage utilisé et les attributs.
Les balises prédéfinies composant le langage XAML sont aussi des classes .NET.

Il utilise les composantes de .NET et partage les ressources du CLR (Common Language Runtime) avec les langages procéduraux.

Widgets et graphisme

Les éléments du langage XAML correspondent à des balises de positionnement et a des "widgets", des composants d'interface utilisateur graphiques tel que bouton, champ de texte, menu, liste, bouton radio, etc....
Ces composants de même que le texte utilisent des graphismes vectoriels permettant d'ajuster leur taille sans perte de définition.

Widgets

Eléments de positionnement

Equivalents aux éléments HTML

Equivalents SVG pour le graphisme 2D

Propriétés de style

Les propriétés telles que couleurs, police, dimensions etc... sont des attributs des balises.
Exemple: définir la couleur de fond du bouton.

<button
    BackGround="Gray">
</button>

Plus d'informations

XAML et XUL, comparaison. XAML s'est inspiré de XUL de Mozilla. Leurs différences ainsi qu'avec les principaux autres langages d'interface basés sur XML.

XAML Overview . Par Microsoft. (Anglais)