Windows Presentation Foundation
XAML

עיקר השימוש בשפה זו ייצוג והגדרה של האלמנטים המרכיבים את הממשק, פאנלים, כפתורים, פקדים וכל אלמנט ויזואלי המופיע בחלון היישום. אפשר להגדיר כמעט כל דבר; טקסט, תמונה, וידאו, לצייר מסלול (Path) באמצעות סדרת קואורדינטות. אפשר לכתוב תגיות XAML באופן ידני, אך הדרך המועדפת היא שהעורך הוויזואלי יבצע את רוב העבודה, כאשר גוררים אלמנט לתוך החלון או משנים את תכונותיו, העורך מבצע את השינוי המתאים בקובץ ה-XAML באופן אוטומטי. לעיתים נדרשת התערבות נוספת לצורך שיפורים. בעיקרון אין חובה להשתמש בשפת תגיות, ניתן ליצור יישום שלם באמצעות קוד, ללא קובץ XAML כלל (אם כי יצירת חלון באמצעות קוד עשויה להיות ארוכה יותר כיוון שמרבית מחלקות WPF אינן כוללות בנאים עם ארגומנטים). להפרדה בין עיצוב החלון לקוד הלוגי של התוכנה חשיבות רבה בייחוד בעבודת צוות. היא מאפשרת לחלק את העבודה ביעילות בין מתכנת למעצב. היכולת הזו לא קיימת בטכנולוגיות הקודמות, כיוון שכל אלמנט המופיע בחלון מצויר באמצעות קוד. כל שינוי קטן בעיצוב מתבצע באמצעות שינוי בקוד המתאים.
קיימות מספר תתי מחלקות של שפה זו:
WPF XAML: מכיל את המידע הדרוש לייצוג תכולת חלון יישום.
XPS XAML: מגדיר ייצוג XML למסמכים מעוצבים בדומה ל-PDF.
Silverlight XAML: מיועד לשימוש בדפדפנים כתוסף חוצה-פלטפורמות.
WF XAML: תשתית עבודה בחלונות (Windows Workflow).
בשפת התגיות XAML כל אלמנט ממופה למופע מתאים של מחלקת ‎.NET ממנה נגזר. אפשר להגדירו עם שם שישמש לזיהויו בקוד שמאחור (Code behind). ניתן לקנן אלמנט יחיד או אלמנטים מרובים בתוך אלמנט אחר. כל אלמנט מקונן "מוכל" באלמנט שמעליו בעץ ההיררכי. ניתן לשרשר תגיות מרובות כדי להגדיר מאפיינים מורכבים וחכמים, להוסיף תגיות סגנון לשימוש כללי ואירועים כמו הקשת מקש או לחיצת עכבר (שאמנם ללא הקוד מאחור אינם עושים דבר). להלן דוגמה לקוד XAML המתאר חלון ריק:
<Window x:Class="MyApplication.MyWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MyWindow" Height="300" Width="300">

</Window>
כבכל מסמך XML הקוד מורכב מאלמנט ראשי יחיד. במקרה זה מתחיל ומסתיים בתגית Window, המייצג מחלקת חלון רגילה של ‎.NET. שתי התגיות הבאות xmlns ו-xmlns:x מייצגות את מרחב השמות (Namespace) של WPF ו-XAML בהתאמה, כדי להכליל את הספריות המתאימות. כתובת האתר אינה משמשת לדבר מלבד הצורך בשם ייחודי, ההיגיון העומד מאחורי בחירה בשם זה שהוא בבעלות מיקרוסופט ולא סביר שארגון אחר יצור שפת תגיות עם מרחב שמות דומה. החיבור עם הקוד שמאחור אפשרי אודות לשם המופיע מיד לאחר תגית החלון במקרה זה MyWindow המוכל במרחב השם MyApplication. בהם משתמש האשף כדי להוסיף מסגרת קוד בסיסית מתאימה המכילה קריאה לפונקציה יחידה InitializeComponent שבתורה מפעילה שיטה במחלקת החלון שטוענת בזמן הריצה את ה-XAML (לאחר שהודר לקובץ בינארי BAML) ומבצעת את קישור העצמים לקוד. להלן קוד התוכנה המשויך לחלון המתואר:
namespace MyApplication
{
 public partial class MyWindow : Window
 {
 public MyWindow()
 {
 InitializeComponent();
 }
 }
}
למעט החלק היחידי שלא הוצג כאן, קוד ההפעלה של היישום (שבדרך כלל נוצר באופן אוטומטי על ידי האשף). היישום המתואר שלם ויפעל ללא דופי בלי צורך בכתיבת קוד נוסף. כמו כן ניתן לייבא קובץ XAML ולטעון את האלמנטים הכלולים בו לחלון התוכנית בזמן ריצה. אם מחליפים את תגית האלמנט הראשי ל-Page ניתן לפתוח את הקובץ ישירות בדפדפן.
להלן דוגמה להוספת מכולת Grid שבתוכה תיבת טקסט, ניתן להגדיר זאת בפשטות:
<Grid>
 <TextBox />
</Grid>
או ביתר פירוט:
<Grid>
 <TextBox VerticalAlignment="Stretch" HorizontalAlignment="Top"
 Margin="10,10,13,10" Name="txtbox"
 TextWrapping="Wrap" FontFamily="Verdana" FontSize="24"
 Grid.Row="0">
  [Place text here.]
 </TextBox>
</Grid>
אפשר לראות כאן את שיטת "הצמדת המאפיינים" בפעולה, המאפיין Grid.Row אינו חלק טבעי מתיבת טקסט, כאן המכולה Grid הקנתה לתיבת הטקסט את המאפיין הדרוש על מנת להגדיר את מיקומה היחסי במכולה, במקרה זה מספר השורה.