Le specifiche XAML sono un insieme di regole che definiscono come mappare i tipi di dato, le proprietà e gli eventi di oggetti .NET, con elementi e attributi di XML. Prendiamo come esempio questo frammento di codice ed il relativo risultato mostrato in figura:
<Button x:Name="sampleButton" Height="50" Width="100" Content="Cliccami!" />
Scrivere un elemento, in XAML, è un po' come istanziare un oggetto in .NET tramite il costruttore privo di parametri, mentre impostare un attributo equivale ad impostare una proprietà dell'oggetto. Nell'esempio precedente abbiamo creato un controllo di tipo Button
ed abbiamo impostato alcune proprietà come, l'altezza, la larghezza ed il contenuto.
Gli attributi contengono valori di tipo stringa, racchiusi tra singolo ('
) o doppio ("
) apice. Con l'attributo x:Name
impostiamo il nome dell'elemento XAML, questo ci permetterà di richiamare tale controllo nel codice .NET scritto nel code-behind.
Sempre grazie agli attributi possiamo definire un event handler per un evento esposto dall'elemento, vediamo un esempio:
<Button x:Name="sampleButton" Height="50" Width="100" Content="Cliccami!" Click="sampleButton_Click" />
Il risultato che atteniamo al caricamento della pagina Silverlight è il solito mostrato nella figura precedente, la differenza sta nel fatto che effettuando il click sul Button verrà richiamato il metodo sampleButton_Click
impostato nel relativo attributo e presente nel code-behind. All'interno del metodo inseriremo la nostra logica, in questo caso, per esempio, possiamo visualizzare un messaggio all'utente:
private void sampleButton_Click(object sender, RoutedEventArgs e) { MessageBox.Show("Cliccato!"); }
Questo modello di programmazione basato sull'intercettazione di eventi notificati dai controlli è concettualmente simile a quello utilizzato in ASP.NET o Windows Form.