#56 – XAML

XAML (eXtensible Application Markup Language) is a markup language used when creating WPF or Silverlight applications to define aspects of the application’s appearance or behavior declaratively.  XAML is based on XML and uses XML-like syntax.

In WPF and Silverlight, you typically define your entire user interface using XAML.  Here’s an example, defining a window that contains a panel which in turn contains two buttons.

<Window x:Class="WpfApplication.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="224" Width="334">
    <StackPanel Orientation="Horizontal">
        <Button Name="button1" Content="OK" Height="23" Width="75" />
        <Button Name="button2" Content="Cancel" Height="23" Width="75" />
    </StackPanel>
</Window>

XAML tags (e.g. Window, Button) map directly to instances of CLR objects and XAML attributes map to properties and events for those objects.   In this example, we’ve created two instances of the Button class, with values of “OK” and “Cancel” for their Content properties.