Content Index Search

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.

Note 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, Windows Presentation Foundation, and Microsoft .NET Framework 3.0

XAML is part of the Microsoft® Windows Presentation Foundation (WPF). WPF is the category of features in the Microsoft® .NET Framework 3.0 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.0 (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 Deploying and publishing 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 2005 interoperability in this User Guide.

For more information about XAML and WPF, see the XAML Overview on MSDN or visit the Windows Vista Developer Center.

XAML, code, and Expression Blend

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 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 Debugging 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.

XAML as the equalizer between design applications

You can export art assets from Microsoft® Expression® Design as XAML, and then import the XAML into Expression Blend as resources that can be used in 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 3D content in this User Guide.