سلام
من از xml چیزی نمیدونم


توی wpf که میریم ، کد زیر را مینویسه :


<Window x:Class="WPF_Practice.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPF_Practice"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>

</Grid>
</Window>



چندین سئوال دارم :
1) در کد :

x:Class="WPF_Practice.MainWindow"

یعنی بجای اینکه از Window شی درست کنه ، از کلاس در فضای نام گفته شده (کلاس MainWindow) شی درست کنه . درسته؟ و بعد اینکه کلمه ی x که در بالا نوشت یعنی چه؟ متغییر هه؟ عملگر نقل قول : که در بالا نوشت هم یعنی چه؟ کلمه ی Class هم که نوشت ، زمانی میاد که بخوایم شی ای از یه کلاس را جایگزین کنیم؟ یعنی اینکه اول گفت شی ای از کلاس Window ، اما چون میخواد شی از کلاس فرزند ویندوز میخواد بسازه ، کلمه ی Class را آورد تا بگه که میخواد از فرزندش (که MainWindow هست) شی بسازه و نه اینکه شی از کلاس Window بسازه؟
پس چرا مثل کلاس های دیگه وقتی میخواد از کلاس MainWindow شی بسازه ، مستقیما همون اول بجای کلمه ی Window از کلمه ی MainWindow نام نبرد؟


2) من این خط ها را کلا متوجه نشدم :


xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPF_Practice"
mc:Ignorable="d"

هم کلماتی مثل xmlns . اینها متغییر هستن؟ و هم عملگرهایی مثل نقل قول و رابطه ی کلماتی که قبل از نقل قول و کلماتی که بعد از نقل قول میان مثل xmlns:x
و بعدش اینکه چرا آدرس و لینک وب را میده؟! مثلا آدرس "http://schemas.microsoft.com/winfx/2006/xaml/presentation" به چه معناست؟ لینک وب میده که چی بشه؟


3) و همینطور این دو خط زیر را متوجه نشدم :

xmlns:local="clr-namespace:WPF_Practice"
mc:Ignorable="d"


خط بعدش (Title و ...) را متوجه شدم
آخر هم اینکه چرا شی ای از Grid را اتوماتیک میسازه؟ خوب هر وقت کاربر خواست ، خودش کنترل Grid را مثل بقیه ی کنترل ها اضافه میکنه دیگه
ممنون