یکی از اولین مواردی که در هنگام کار با WPF مواجه خواهید شد، XAML است. XAML مخفف Language Markup Language Extensible Application است. این یک زبان ساده و تکراری بر اساس XML است
XAML، آسان است برای ایجاد   کدهای  اولیه و تنظیم خواص اشیاء با روابط سلسله مراتبی.
این عمدتا برای طراحی GUI ها استفاده می شود، اما می توان آن را برای اهداف دیگر نیز استفاده کرد
هنگامی که شما پروژه WPF جدید خود را ایجاد می کنید، بعضی از کد XAML را به طور پیش فرض در MainWindow.xaml ایجاد میشوند، همانطور که در زیر نشان داده شده است


<Window x:Class = "Resources.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
   Title = "MainWindow" Height = "350" Width = "525"> 
	
   <Grid> 
         
   </Grid> 
	
</Window>

فایل XAML فوق حاوی انواع مختلفی از اطلاعات است. در زیر به طور خلاصه نقش هر یک از اطلاعات را توضیح می دهیم

<Window
این عنصر شیء باز یا ظرف ریشه است.
x:Class = "Resources.MainWindow"
این یک اعلام جزئی کلاس است که نشانه گذاری را به کد کلاس جزئی که در پشت آن متصل است متصل می کند
xmlns = 
نقشه فضاهای پیش فرض XAML را برای سرویس گیرنده / چارچوب WPF ایجاد میکند
xmlns:x = 
XAML نامی برای زبان XAML که آن را به x: prefix می دهد
<Grid></Grid>
این تگ های شروع و بستن یک شیء خالی شبکه است
</Window>
بسته شدن عنصر شی که در خط اول توضیح دادم
قوانین نحوی برای XAML تقریبا شبیه به XML است. اگر شما به یک سند XAML نگاه کنید، متوجه خواهید شد که در واقع یک فایل معتبر XML است، اما یک فایل XML لزوما یک فایل XAML نیست. به همین دلیل است که در XML، مقدار صفات باید یک رشته باشد در حالی که در XAML، آن می تواند یک شی متفاوت باشد که به عنوان نحوۀ آیتم Property شناخته می شود
نحو عنصر Object با یک براکت زاویه سمت چپ (<) با نام یک شی شروع می شود، به عنوان مثال دکمه.
 
تعریف برخی از خواص و ویژگی های آن عنصر شیء.
 
عنصر Object باید توسط اسلش (/) جلو بسته شود و بلافاصله توسط براکت زاویه راست (>)—
<Button/>
مثال عنصر object با بعضی از صفات
<Button Content = "Click Me" Height = "30" Width = "60" />

مثال یک نحو جایگزین خواص را مشخص می کند (نحو اشکال )

<Button> 
   <Button.Content>Click Me</Button.Content> 
   <Button.Height>30</Button.Height> 
   <Button.Width>60</Button.Width> 
</Button>

مثال شیء با عنصر Child: StackPanel حاوی Textblock به عنوان عنصر فرزند است

<StackPanel Orientation = "Horizontal"> 
   <TextBlock Text = "Hello"/> 
</StackPanel> 

چرا XAML در WPF
XAML نه تنها ویژگی شناخته شده ترین WPF است، بلکه یکی از ویژگی های نادرست آن است. اگر شما قرار گرفتن در معرض WPF هستید، پس باید درباره XAML شنیده باشید؛ اما توجه داشته باشید از دو مورد کمتر شناخته شده در مورد XAML –
WPF به XAML نیاز ندارد
XAML به WPF نیاز ندارد
آنها در واقع قطعات قطعه تکنولوژی هستند. برای درک چگونگی این امر می توان به مثال ساده ای نگاه کرد که در آن یک دکمه با برخی از خواص در XAML ایجاد می شود

<Window x:Class = "WPFXAMLOverview.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
   Title = "MainWindow" Height = "350" Width = "604"> 
	
   <StackPanel> 
      <Button x:Name = "button" Content = "Click Me" HorizontalAlignment = "Left"  
         Margin = "150" VerticalAlignment = "Top" Width = "75" /> 
   </StackPanel> 
	
</Window>

در صورتی که شما تصمیم به استفاده از XAML در WPF نخواهید داشت، می توانید همان رابط گرافیکی را با زبان رویه ای نیز به دست آورید. بیایید نگاهی به مثال مشابه داشته باشیم، اما این بار، ما یک دکمه در C # ایجاد خواهیم کرد

using System.Windows; 
using System.Windows.Controls;  

namespace WPFXAMLOverview { 
   /// <summary> 
      /// Interaction logic for MainWindow.xaml 
   /// </summary> 
	
   public partial class MainWindow : Window { 
	
      public MainWindow() { 
         InitializeComponent(); 
			
         // Create th