What is XAML?
Extensible Application Markup Language, or XAML (pronounced "zammel"), is an XML-based markup language developed by Microsoft. XAML is the language behind the visual presentation of an application that you develop in Microsoft Expression Blend, just as HTML is the language behind the visual presentation of a Web page. Creating an application in Expression Blend means writing XAML code, either by hand or visually by working in the Design view of Expression Blend.
You do not need to understand XAML to create applications in Expression Blend if you work in Design view. For more information, see Editing XAML by using Design view in Expression Blend in the topic Editing XAML in this User Guide.
XAML as the equalizer between design applications
You can export art assets from Microsoft Expression Design 2 as XAML, and then import the XAML into your Expression Blend project. Some other design applications have tools that can convert art assets to XAML. You can search on the Internet for conversion tools that are posted on trusted sites.
For more information about importing XAML, see the topics Import XAML that is exported from Expression Design and Import assets from Expression Design 2 in this User Guide.
You can also import Silverlight 1.0 projects that are created by using a Silverlight template to encode a video project in Microsoft Expression Encoder 2. Additionally, you can modify the Silverlight templates that come with Expression Encoder 2 in Expression Blend 2. For more information, see Import a Silverlight 1.0 site from Expression Encoder 2 and Modify a Silverlight template for Expression Encoder 2 in Expression Blend.
Back to top
XAML, Windows Presentation Foundation, and Microsoft .NET Framework 3.5
XAML is part of the Microsoft Windows Presentation Foundation (WPF). WPF is the category of features in the Microsoft .NET Framework 3.5 that deal with the visual presentation of Windows-based applications and Web browser-based client applications.
WPF-based applications can run on Windows Vista, or on earlier versions of Windows if Microsoft .NET Framework 3.5 (and Internet Explorer 7.0 in the case of Web browser-based client applications) is installed. For more information about the requirements of WPF applications, see the topic Deploy and publish Expression Blend applications in this User Guide.
WPF uses XAML for constructing visually stunning user interfaces (UI) in markup instead of in a programming language such as C#. You can create elaborate UI documents entirely in XAML by defining elements such as controls, text, images, shapes, animation, and more. Because XAML is declarative (like HTML), it requires the addition of code if you need to add run-time logic to your application. For example, if your application uses only XAML, you can create and animate UI elements, and configure them to respond in a limited way to user input (by using event triggers), but your application cannot perform and respond to calculations or spontaneously create new UI elements without the addition of code. The code for a XAML application is stored in a separate file from the XAML document. This separation of UI design from the underlying code enables developers and designers to work more closely together on the same project without delaying each other's progress. For information about how Expression Blend helps you to incorporate code into your XAML application, see the topic Code editing and Visual Studio 2008 interoperability in this User Guide.
What is WPF?
Windows Presentation Foundation (WPF) is a unified presentation subsystem for Windows, exposed through WinFX, the managed-code programming model for Windows Vista that extends the Microsoft .NET Framework. WPF consists of a display engine and a managed-code framework. WPF unifies how Windows creates, displays, and manipulates documents, media, and user interface (UI), enabling developers and designers to create visually stunning, differentiated user experiences.
WPF is based on managed code but uses a markup language, Extensible Application Markup Language (XAML), to make building applications much easier for designers. XAML-based applications currently support C# and Microsoft Visual Basic .NET. If you write a WPF application entirely in procedural code, you can use any common language runtime (CLR) language.
Back to top
XAML and Silverlight 1.0
In Microsoft Silverlight 1.0 projects, XAML is also used to represent the visual presentation of your application. However, Silverlight 1.0 projects do not use WPF. For more information, see Quick start with Silverlight 1.0.
Back to top
The relationship between XAML and code-behind files
The XAML for any given document in Expression Blend is stored in a .xaml file. If there is underlying code for your XAML document, that code is stored in a file of the same name, with the additional extension of .cs or .vb. For example, if your XAML document is named Window1.xaml, the code-behind file will be called Window1.xaml.cs if the programming language of the code is C#.
For information about how to create XAML documents with or without code-behind files, see the topic Create a new document or project in this User Guide.
When you build your project, the WPF parser reads the .xaml files for that project and reports any resulting errors. Likewise, when you open an existing project in Expression Blend, the XAML parser reads the .xaml files that are included in your project folder and attempts to parse the elements and display the documents on the artboard in Design view. In both cases, if the parser encounters errors, the artboard is disabled, and Expression Blend displays an error message with a link to open XAML view so that you can resolve the errors. The parsing errors are also reported on the Errors tab in the Results panel. For more information, see the topics Editing XAML, Handling errors, and Debug Expression Blend applications in this User Guide. For information about the syntax of individual controls, see Control Library or search for XAML elements in the Class Library reference, both on MSDN.
Back to top