Appendix A. XAML

XAML—the eXtensible Application Markup Language—is an XML-based language for creating trees of .NET objects. XAML provides a convenient way of constructing WPF user interfaces. This appendix explores the syntax of XAML and its relationship to .NET code.

Although XAML is seen as being strongly associated with WPF, the two are, strictly speaking, separate. You do not have to use XAML in order to write a WPF application, and it is possible to use XAML for technologies other than WPF. For example, the Windows Workflow Foundation can use XAML to represent workflows. WPF is designed to be convenient to use from XAML, but to understand XAML fully, it's important to realize that it has no special connection with the WPF framework. As we said, XAML is essentially just a language for constructing trees of .NET objects.

XAML Essentials

To examine the relationship between XAML and .NET, we will work through a simple XAML example (see Example A-1).

Example A-1. Simple XAML file

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="XamlProj.Window1"
    Title="Main Window">

  <Grid>
    <Ellipse Fill="LightBlue" />
    <TextBlock>
      Name: <TextBlock Text="{Binding Name}" />
    </TextBlock>
  </Grid>
</Window>

Example A-1 is a simple but typical XAML file. Let's look at it in detail to understand what the XAML compiler will do with it.

Namespaces

The first thing to examine is the file's use of XML namespaces. There ...

Get Programming WPF, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.