3. wpf buyruqlaridan foydalanish wpf da buyruq qatori parametrlari


Download 371.69 Kb.
bet3/4
Sana18.06.2023
Hajmi371.69 Kb.
#1575019
1   2   3   4
Bog'liq
WPFda boshqaruv Davronbek

Belgilar va katakchalar


Menyu elementining ikkita umumiy xususiyati - bu menyu bandini va u nima qilishini osonroq aniqlash uchun ishlatiladigan piktogramma va muayyan xususiyatni yoqish va o'chirish mumkin bo'lgan tekshiriladigan menyu elementlariga ega bo'lish qobiliyati. WPF MenuItem ikkalasini ham qo'llab-quvvatlaydi va undan foydalanish juda oson:

Ushbu misol uchun men ikkilamchi yuqori darajali elementni yaratdim, u erda ikkita element qo'shdim: biri belgilangan piktogramma bilan, Icon xususiyatidan uning ichida standart Tasvir boshqaruvi bilan, ikkinchisida esa IsCheckable xususiyatidan foydalanamiz. foydalanuvchiga elementni tekshirish va belgini olib tashlashga ruxsat bering. Men hatto uni sukut bo'yicha tekshirish uchun IsChecked xususiyatidan foydalanganman. Code-behind-dan, bu ma'lum bir menyu elementi tekshirilgan yoki tekshirilmaganligini bilish uchun o'qishingiz mumkin bo'lgan xususiyatdir.

Kliklarni boshqarish


Foydalanuvchi menyu bandini bosganda, siz odatda biror narsa sodir bo'lishini xohlaysiz. Eng oson yo'li oddiygina MenuItem-ga bosish hodisasi ishlovchisini qo'shishdir, masalan:

Code-behind-da siz mnuNew_Click usulini qo'llashingiz kerak bo'ladi, masalan:
private void mnuNew_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("New");
}
Bu oddiyroq ilovalar uchun yoki biror narsani prototiplashda etarli bo'ladi, lekin WPF usuli buning uchun buyruqdan foydalanishdir.
Yuqoridagi kabi menyu elementining Click hodisasini osongina boshqarishingiz mumkin, ammo keng tarqalgan yondashuv WPF buyruqlaridan foydalanishdir. Buyruqlarni ishlatish va yaratish bo'yicha juda ko'p nazariyalar mavjud, shuning uchun ular saytda o'zlarining maqolalari toifasiga ega, ammo hozircha men sizga aytishim mumkinki, ular WPFda, ayniqsa Menyu bilan birgalikda ishlatilganda bir nechta afzalliklarga ega. yoki asboblar paneli.
Avvalo, ular bir xil kodni bir nechta joyda qo'llamasdan, asboblar panelida, menyuda va hatto kontekst menyusida bir xil harakatga ega bo'lishingizni ta'minlaydi. Shuningdek, ular klaviatura yorliqlari bilan ishlashni ancha osonlashtiradi, chunki WinForms-dan farqli o'laroq, WPF klaviatura yorliqlarini avtomatik ravishda tinglamaydi, agar siz ularni menyu bandiga tayinlasangiz - buni qo'lda qilishingiz kerak bo'ladi.
Biroq, buyruqlardan foydalanganda, WPF barcha quloqlardir va klaviatura yorliqlariga avtomatik ravishda javob beradi. Menyu bandining matni (sarlavhasi) ham avtomatik tarzda o'rnatiladi (garchi kerak bo'lsa, uni qayta yozishingiz mumkin) va foydalanuvchiga ma'lum menyu bandini chaqirish uchun qaysi klaviatura yorliqlaridan foydalanish mumkinligini ko'rsatadigan InputGestureText ham o'rnatiladi. Keling, to'g'ridan-to'g'ri Menyuni WPF buyruqlari bilan birlashtirish misoliga o'tamiz:
using System;
using System.Windows;
using System.Windows.Input;
namespace WpfTutorialSamples.Common_interface_controls
{
public partial class MenuWithCommandsSample : Window
{
public MenuWithCommandsSample()
{
InitializeComponent();
}
private void NewCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
private void NewCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
txtEditor.Text = "";
}
}
}

Bu mutlaqo ravshan bo'lmasligi mumkin, ammo buyruqlar yordamida biz shunchaki bir qancha narsalarni bepul oldik: elementlardagi klaviatura yorliqlari, matn va InputGestureText va WPF faol boshqaruv va uning holatiga qarab elementlarni avtomatik ravishda yoqadi/o'chiradi. Bunday holda, Kesish va Nusxalash o'chirilgan, chunki hech qanday matn tanlanmagan, lekin joylashtirish yoqilgan, chunki mening vaqtinchalik buferim bo'sh emas!
Va WPF ma'lum buyruqlarni ma'lum boshqaruv elementlari bilan qanday boshqarishni bilganligi sababli, bu holda Kesish/Nusxalash/Yapıştırma buyruqlari matn kiritish boshqaruvi bilan birgalikda, biz ularning Bajarish hodisalarini boshqarishimiz shart emas - ular darhol ishlaydi. quti! Biz buni New buyrug'i uchun bajarishimiz kerak , chunki WPF foydalanuvchi uni faollashtirganda nima qilishimizni taxmin qilishning imkoni yo'q. Bu buyruqlar bobida batafsil bayon qilingan Oynaning CommandBindings bilan amalga oshiriladi .
Oldingi maqolada biz buyruqlar nima va ular qanday ishlashi haqida ko'plab nazariyalarni muhokama qildik. Ushbu bobda biz buyruqlarni foydalanuvchi interfeysi elementlariga tayinlash va barchasini bir-biriga bog'laydigan buyruq bog'lashlarini yaratish orqali amalda qanday ishlatishni ko'rib chiqamiz.
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Input;
namespace WpfTutorialSamples.Commands
{
public partial class UsingCommandsSample : Window
{
public UsingCommandsSample()
{
InitializeComponent();
}
private void NewCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
private void NewCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("The New command was invoked");
}
}
}

Biz uni CommandBindings to'plamiga qo'shish orqali Oynada buyruqni bog'lashni aniqlaymiz. Biz foydalanmoqchi bo'lgan Buyruqni (ApplicationCommands-dan Yangi buyrug'i), shuningdek, ikkita hodisa ishlov beruvchisini belgilaymiz. Vizual interfeys bitta tugmachadan iborat bo'lib, biz buyruqni Buyruq xususiyatidan foydalanib biriktiramiz.
Code-behind-da biz ikkita voqeani boshqaramiz. Muayyan buyruq hozirda mavjud yoki yo'qligini bilish uchun dastur bo'sh turganda WPF qo'ng'iroq qiladigan CanExecute ishlov beruvchisi bu misol uchun juda oddiy, chunki biz ushbu maxsus buyruq har doim mavjud bo'lishini xohlaymiz . Bu hodisa argumentlarining CanExecute xossasini rost deb belgilash orqali amalga oshiriladi .
Bajarilgan ishlov beruvchi buyruq chaqirilganda oddiygina xabarlar oynasini ko'rsatadi. Agar siz namunani ishga tushirsangiz va tugmani bossangiz, ushbu xabarni ko'rasiz. Shunisi e'tiborga loyiqki, bu buyruq standart klaviatura yorlig'iga ega bo'lib, siz qo'shimcha bonus sifatida olasiz. Tugmani bosish o'rniga, siz klaviaturada Ctrl + N tugmachalarini bosishga harakat qilishingiz mumkin - natija bir xil.

Hulosa
So'nggi bir necha maqolalar davomida biz faqat XAML va C# dan foydalangan holda to'liq klassik Snake o'yinini yaratdik. Biz o'yin mexanizmining asosiy ishlarini qildik, masalan, fonni chizish, bosh qahramonni chizish (bu holda yashil ilon), shuningdek, to'qnashuvni aniqlash kabi murakkabroq narsalarni ham.Buning ustiga, biz oddiy XAML-dan foydalangan holda o'yin uchun bir nechta UI qatlamlarini qanday qurishimiz mumkinligini va hatto yaxshi, eski oynaning ko'rinishi va xatti-harakatlarini o'zimiz xohlagandek o'zgartirishimiz mumkinligini ko'rdik. Darhaqiqat, o'yinning oxirgi versiyasini ishga tushirganingizda, bu haqiqiy (juda oddiy) o'yindan boshqa narsa emas deb o'ylamaysiz - biz uni Windows ilovasiga o'xshatgan barcha qismlarni yashirganmiz.Biz birinchi maqolalarda eng asosiy Snake oʻyinini yaratishga eʼtibor qaratgan boʻlsak-da, yakuniy maqolalardan hamma narsani jilolash va yuqori ball roʻyxati kabi yoqimli narsalarni qoʻshish uchun foydalandik. Biz tovushlarni ham qo'shdik! Umid qilamizki, WPF bilan o'yin yaratish bo'yicha ushbu to'liq maqolalar to'plami sizga yoqdi. Bu, albatta, WPF qanday ajoyib va ​​juda moslashtirilgan ramka ekanligini ko'rsatadi - hamma narsa mumkin!


Ilgari biz asosan foydalanuvchining funktsional talablariga javob beradigan mahsulotlarni yaratishga e'tibor qaratganmiz. Foydalanuvchi tajribasi ko'pincha ishlab chiqish jarayonida kech ko'rib chiqiladi. Ammo bugungi kunda mijoz faqat ishlaydigan mahsulotdan ko'proq narsani talab qiladi. To'g'ri xususiyatlarni taqdim etish hali ham yaxshi mahsulot uchun zaruriy shartdir, lekin uni g'ayrioddiy narsaga aylantirish uchun siz yaxshi foydalanuvchi tajribasini taqdim etishingiz kerak!
Boy foydalanuvchi tajribasini taqdim etish omadli narsa emas. Uni rejalashtirish, loyihalash va mahsulotni ishlab chiqishda birlashtirish kerak. Boy foydalanuvchi tajribasini loyihalash nafaqat ba'zi grafikalar va gradientlar bo'yicha foydalanuvchi interfeysingizni yaratish emas - bu ancha kengroq tushuncha. Bu foydalanuvchi va sizning dasturiy ta'minotingiz o'rtasida hissiy aloqani yaratish haqida. Bu foydalanuvchini yaxshi his qiladi va shuning uchun u dasturiy ta'minotdan foydalanishni davom ettirishni yaxshi ko'radi.


Download 371.69 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling