Le système de positionnement "Grid" :

Ce type de positionnement se base sur les composantes principales de toute grille "digne de ce nom" à savoir : les lignes (Rows) et les colonnes (Columns)...

Après avoir mentionné le nombre de cellules et de colonnes à considérer ainsi que leurs tailles respectives, il suffit d'ajouter les propriétés "Grid.Column" et "Grid.Row" à la balise de chaque contrôle du Grid...

Sachant que je souhaite disposer de 2 lignes (longueur de chacune : 40) et de 2 colonnes (largeur de chacune : 200) et mettre mon textbox au dessus du bouton,
le code XAML du Premier essai deviendrait :
   
    <Grid x:Name="LayoutRoot" Background="White">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200"/>
            <ColumnDefinition Width="200"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="40"/>
            <RowDefinition Height="40"/>
        </Grid.RowDefinitions>
        <TextBox x:Name="textbox" IsReadOnly="True" Text="C'est l'effet Silverlight !!" Visibility="Collapsed" Width="200" Height="25" Grid.Column="1" Grid.Row="0"></TextBox>
        <Button x:Name="bouton" Content="Afficher" Click="bouton_Click" Width="50" Height="25" Grid.Column="1" Grid.Row="1"></Button>
    </Grid>

Ce qui nous donne le résultat suivant lors de l'exécution :


Le système de positionnement "StackPanel" :

Dans ce système, il s'agit de juxtaposer les contrôles (de façon verticale ("Vertical") ou horizontale ("Horizontal") --> propriété "Orientation" du système) en veillant à mentionner la marge (ou espace --> propriété "Margin" du contrôle) les séparant...

Appliquons ceci à l'exemple du Premier essai :

    <StackPanel x:Name="LayoutRoot" Background="White" Orientation="Vertical">
        <TextBox x:Name="textbox" IsReadOnly="True" Text="C'est l'effet Silverlight !!" Visibility="Collapsed" Width="200" Height="25" Margin="10"></TextBox>
        <Button x:Name="bouton" Content="Afficher" Click="bouton_Click" Width="50" Height="25"></Button>
    </StackPanel>

Ce qui nous donne le résultat suivant lors de l'exécution :


Le système de positionnement "Canvas" :

Le positionnement des contrôles dans un Canvas se base sur 2 propriétés que sont : Canvas.Left et Canvas.Top...

Ces dernières doivent être mentionnées dans la balise du contrôle considéré... Elles précisent sa position par rapport au coin supérieur gauche de la fenêtre...

Reprenons l'exemple traité lors du Premier essai et rajoutons lesdites propriétés aux balises de la page "Page.xaml" :

    <Canvas x:Name="LayoutRoot" Background="White">
        <TextBox x:Name="textbox" IsReadOnly="True" Text="C'est l'effet Silverlight !!" Visibility="Collapsed" Width="200" Height="25" Canvas.Left="50" Canvas.Top="100"></TextBox>
        <Button x:Name="bouton" Content="Afficher" Click="bouton_Click" Width="50" Height="25" Canvas.Left="260" Canvas.Top="100"></Button>
    </Canvas>

Ce qui nous donne le résultat suivant lors de l'exécution :


N.B : J'ai procédé à un ajustement de la taille du textbox en réduisant sa longueur (propriété "Height") à 25...