Ajouter du code et des évènements en XAML

Ajouter du code

Il est possible de placer du code directement à l'intérieur de XAML.
On ajoute un élément <code> parmi les définitions. Cet espace de nom s'obtient avec le préfixe "def".
Par ailleurs, la balise spéciale CDATA permet l'insertion directe de code.

<FlowPanel xmlns="http://schemas.microsoft.com/2003/xaml" xmlns:def="Definition">
    <Text>Salut le monde!</Text>
    <Button>Cliquez moi!</Button>
    <def:Code>
        <![CDATA[
            string Salut() 
            { 
              return "Salut le monde!"; 
            }
        ]]> 
    </def:Code> 
</FlowPanel>

Partial class

Pour conserver la portabilité, qui disparait avec l'insertion de code dans l'interface, XAML fournit un moyen, ce sont les classes partielles.
En declarant un classe comme partielle, on peut la compléter avec du code provenant d'autres fichiers sources, lesquels seront adaptés aux différentes plateformes utilisant notre interface écrite en XAML

partial class MonCode
{
  public string Salut()
  {
    return "Salut le Monde!";
  }
}

En fait, chaque fichier XAML est créé d'emblée avec une classe partielle (avec un outil comme Visual Studio ou autre outil adapté).
Cette classe se trouve dans un autre fichier source. Il vous appartient de développer cet autre source avec du code natif.
Comme vous les savez, les élément XAML sont transposés en classes et attribut dans le code généré. Cela vous offre une compatibilité avec le code natif: vous utilisez les éléments comme les autres classes écrite en tout langage avec .NET.

<TextBlock>
   Salut le Monde!
</TextBlock>

pour modifier cet élément en C Sharp:

Text = "Hello";

En fait c'est un peu plus compliqué, mais cela sera détaillé dans le tutoriel.

Gestion des évènements

Une interface graphique serait de peu d'utilité si l'utilisateur ne peut interagir avec les éléments, et donc s'il n'y a pas de fonctions associées aux éléments graphiques.
Pour ce faire, il faut une gestion des évènements. C'est là l'intérêt d'intégrer du code dans la définition de l'interface.
Partiquement, on le réalise en ajoutant un attribut prédéfini à chaque élément.
Le nom de l'attribut est l'évènement, sa valeur est le nom de la fonction qui doit être appelée en réponse à l'évènement.

<Button MouseLeftButtonDown="OnClick">
   Cliquer
</Button>

On doit aussi définit la fonction OnClick() dans le code associé comme il est indiqué plus haut.

private void OnClick(object sender, ClickEventArgs e) 
{ 
   sender.Text = "Salut!"; 
}