مقدمة إلى XAML
Introduction to XAML
مقدمة: إن XAML هي اختصار Extensible Application Markup Language حيث تلفظ (XAML) بـ Zamel، وهي تستخدم من أجل بناء واجهات لتطبيقات .NET في الويندوز Vista ولكن يمكن استخدامها مه ويندوز XP وويندوز Server 2003، أتت XAML من أجل الفصل بين واجهات المستخدم والكود مثل ASP.NET حيث يمكنك وضع (كودات) ASP.NET في ملف والكود التنفيذي (مثلا C# أو VB) في ملف آخر، عندما يتم ترجمة ملفات XAML فإنها تترجم إلى BAML حيث أنها مشاهة إلى XAML ولكنها أسهل للقراءة وبالتالي هي أسرع في التنفيذ.
دعنا الان عزيزي المبرمج نكتب سويا أول برنامج في XAML.
كتابة أول برنامج في الـ XAML:
<StackPanel> <Label HorizontalAlignment="Center" FontSize="33"> أدخل اسمك </Label> <TextBox Name="MyTextBox" Width="200" Height="30" Margin="40" /> <Button Click="ButtonClickHandler" Width="100" Height="40" FontSize="20"> إنقر هنا! </Button> </StackPanel>
private void ButtonClickHandler(object sender, RoutedEventArgs e)
{
MessageBox.Show(string.Format("أهلا بك يا: '{0}'", MyTextBox.Text), "XAML");
}سينتج لديك الشكل التالي:
ملاحظات:
عندما تنشئ برنامج جديد ستلاحظ بعض عناصر XAML مكتوبة في نافذة XAML، مثل <Window /> وهو يمثل عنصر الجذر.
العنصر <StackPanel> هو عبارة عن عنصر من عناصر XAML يمكننا من إدراج عناصر أخرى بداخله.
ملاحظة: ليس من الضروري في الـ XAML وضع أسماء للعناصر، فمثلا: العنصر <Label> في المثال السابق لم نقم بتحديد قيمة للخاصة Name وذلك لأنني لا أود الوصول لهذا النعصر برمجيا، مما يتيح لي اختصار كود XAML، أما إذا أردت التمكن من الوصول لهذا العنصر برمجيا فعندها أعطي قيمة للعنصر، مثل عنصر <TextBox> في المثال السابق.
إذا أردت كتابة كود C# أو VB.NET في نفس ملف XAML، وليكن أني أود كتابة شيفرة الحدث السابق في نفس الملف أكتب ما يلي:
<x:Code>
<![CDATA[
void ButtonClickHandler(object sender, RoutedEventArgs e)
{
MessageBox.Show
(string.Format("أهلا بك يا: '{0}'", MyTextBox.Text), "XAML"); }
]]>
</x:Code>تكتب الشيفرة السابقة بعد إغلاق العنصر </StackPanel> كما هو موضح بالشكل:
البرنامج في المرفقات
وشكرا،،