XAML nima?
XAML kengaytmasi Extensible Application Markup Language bo'lib, Microsoftning grafik interfeysni qo'llovchi XML varianti. WinForms kabi avvalgi GUI framework larda, grafik interfeys uchun yozayotgan kod Visual Studioning dizayner qismida boshqarilgan, lekin XAML bilan Microsoft boshqacha yo'lni tutdi. Huddi HTML kabi grafik interfeysni loyihalashingiz va o'zgartirishingiz mumkin.
Bu yerda XAML ni batafsil yoritmaymiz, va uni qanday qilib ishlatishni to'la tushuntirishga harakat qilamiz, chunki u WPF ning eng asosiy qismi xisoblanadi. Window yoki Page yasayapsizmi farqi yo'q, ular XAML dokumenti va alohida faylda kodi bo'ladi va birgalikda Window/Page juftligini hosil qiladi. XAML fayli barcha elementlari bilan grafik interfeysni hosil qilsa, ortidagi kod barcha hodisalar va XAML kontrollarini boshqaradi
XAML kodi
Button btn = new Button();
btn.FontWeight = FontWeights.Bold;
WrapPanel pnl = new WrapPanel();
TextBlock txt = new TextBlock();
txt.Text = "Multi";
txt.Foreground = Brushes.Blue;
pnl.Children.Add(txt);
txt = new TextBlock();
txt.Text = "Color";
txt.Foreground = Brushes.Red;
pnl.Children.Add(txt);
txt = new TextBlock();
txt.Text = "Button";
pnl.Children.Add(txt);
btn.Content = pnl;
pnlMain.Children.Add(btn)
(4-rasm)
Hodisalar
WPF dasturi zamonaviy interfeyslarning ramkalari hodisalarga asoslangan . Barcha boshqaruv elementlari, shu jumladan Window (u ham Control sinfini meros qilib oladi).
Ko'pgina boshqaruv elementlarida siz KeyDown, KeyUp, MouseDown, MouseEnter, MouseLeave, MouseUp va boshqa bir qator hodisalarni topasiz.
WPF-da hodisalar qanday ishlashini batafsil ko'rib chiqamiz, chunki bu juda murakkab mavzu, ammo hozircha siz XAML-dagi boshqarish hodisasini kod ortidagi faylingizdagi kod qismiga qanday bog'lashni bilishingiz kerak. Ushbu misolni ko'rib chiqing:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="EventsSample" Height="300" Width="300">
private void pnlMainGrid_MouseUp(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("You clicked me at " + e.GetPosition(this).ToString());
}
MouseUp qo'llanilganda siz bog'langan bo'lgan MouseButtonEventHandler deb nomlangan delegatdan foydalaniladi. U ikkita parametrga ega: jo'natuvchi (hodisani ko'targan boshqaruv) va foydali ma'lumotlarni o'z ichiga olgan MouseButtonEventArgs ob'ekti. Sichqoncha kursori o'rnini olish va bu haqda foydalanuvchiga aytib berish uchun biz uni misolda ishlatamiz.
Bir nechta hodisalar bir xil delegate turidan foydalanishi mumkin - masalan, ikkala MouseUp va MouseDown MouseButtonEventHandler delegatedan, MouseMove hodisasi esa MouseEventHandler delegatedan foydalanadi. Hodisalarni qayta ishlash usulini belgilashda siz qaysi delegateni ishlatishini bilishingiz kerak va agar buni bilmasangiz, uni hujjatlarda qidirib topishingiz mumkin.
Do'stlaringiz bilan baham: |