Les propriétés en XAML peuvent s'écrire de deux façons différentes :
en attribut de l'élement
en noeud enfant, avec une syntaxe particulière
Ainsi, les codes suivants sont équivalents :
<Button Width="150" Height="25">
Click here !
</Button>
<Button>
<Button.Width>150</Button.Width>
<Button.Height>25</Button.Height>
Click here !
</Button>
<Button Height="25">
<Button.Width>150</Button.Width>
Click here !
</Button>
etc.
La syntaxe d'une propriété placée en tant que fils d'un élément est ainsi donc la suivante : nomElement.nomPropriété
Voici un exemple un peu plus complexe : un bouton avec un menu déroulant attaché :
<Button Width="150" Height="25">
<Button.ContextMenu>
<ContextMenu>
<MenuItem Header="Bleu" Click="MettreEnBleu">
Bouton en bleu
</MenuItem>
<MenuItem Header="Vert" Click="MettreEnVert">
Bouton en vert
</MenuItem>
</ContextMenu>
</Button.ContextMenu>
<Button.Content>Click here !</Button.Content>
<!-- Remarque : la balise Button.Content est facultative ici. -->
</Button>
Remarquez alors que le contenu textuel d'un bouton peut être vu comme correspondant à la valeur d'une propriété.
Ainsi donc, on peut également définir un bouton de la manière suivante :
<Button Width="150" Height="25" Content="Click here !" />
Un évènement XAML se comporte exactement comme une propriété et possède également les deux syntaxes.
Remarque : Bien que les deux syntaxes existent en XAML. L'Intellisense de Visual Studio 2008 refusera de vous les proposer en tant que noeud enfant. Il faut les taper à la main pour les déclarer selon la syntaxe nomElement.nomEvènement.
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.