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
- Button: Bouton.
- CheckBox: Case à cocher.
- ComboBox, contenant des ComboItem.
- Image.
- ListBox contenant des ListItem.
- Menu contenant des MenuItem.
- RadioButton: bouton radio.
- ScrollBar: barre de défilement.
- Table contenant: TableCell, TableRow, TableColumn.
- TextBox: Champ de texte à taper.
- Text ou TextBlock: Texte.
- VerticalSlider: ascenceur.
- Window: fenêtre.
Eléments de positionnement
- Canvas: Positionnement absolu.
- DockPanel: Conteneur qui positionne selon les points cardinaux.
- FlowPanel: Conteneur pour agencement d'autres éléments.
- GridPanel: Conteneur qui se subdivise en lignes et colonnes.
Equivalents aux éléments HTML
- Block: <div>
- Bold: <b>
- Heading: H1, H2, etc...
- HyperLink: <a href="">
- Image: <img src="">
- Italic: <i>
- LineBreak: <br>
- List: <ul>, <ol>...
- Paragraph: <p>
Equivalents SVG pour le graphisme 2D
- Canvas: <svg>, une zone de dessin.
- Ellipse: <ellipse>.
- Line: <line>.
- Path: <path>, série de lignes connectées.
- Polygon: <polygon>.
- Polyline: <polyline>, série de lignes droites connectées.
- Rectangle: <rectangle>.
- TransformDecorator: transform, rotation etc...
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)