ایجاد یک برنامه WPF ساده
وقت آن رسیده است که برنامه نویسی WPF را تجربه کنید. به این نکته توجه کنید که این درس به شما نحوه ایجاد یک برنامه ویندوزی که در آن از یک اداره کننده رویداد (event-handling) استفاده شده است، را نشان میدهد. من هر مرحله را به صورت گام به گام انجام داده و به طور مختصر در مورد هر کدام توضیح میدهم. برنامه ویژوال استودیو را باز و بر روی گزینه Create New Project کلیک کنید:
سپس از لیست ظاهر شده مانند شکل زیر گزینه WPF Application را انتخاب نمایید. نام پروژه را MyFirstWPFApplication بگذارید:
بعد از کلیک بر روی دکمه OK وارد محیطی به شکل زیر میشوید (البته ممکن است برخی قسمتها برای شما مخفی باشد) :
Form را میتوان در دو حالت مشاهده کرد، حالت طراحی و حالت کد. در حالت طراحی میتوانید فرم، کنترلهای ویژوال و غیر ویژوال را مشاهده نمایید. شکل زیر یک فرم را نشان میدهد که شما میتوانید با استفاده از دستگیرههای کناری (که با فلش نشان داده شده است) در محیط طراحی اندازه آنرا تغییر دهید.
اضافه کردن کنترلها به فرم
همه کنترلها در جعبه ابزار یا Toolbox قرار دارند. Toolbox از مسیر سربرگ جعبه ابزار که به صورت پیش فرض در سمت چپ محیط IDE قرار دارد قابل دسترسی است. اگر جعبه ابزار را پیدا نکردید میتوانید از مسیر View > Other Windows > Toolbox به آن دسترسی یابید. برای نمایش جعبه ابزار کافیست با ماوس بر روی آن لحظهای توقف کرده و یا کلیک نمایید.
Toolbox به قسمتهایی تقسیم شده است، مثلاً کنترلهای پر کاربرد در قسمت Common WPF Controls قرار دارند. برای باز کردن یک دسته و نمایش کنترلهای آن کافیست بر روی نام دسته کلیک کنید. Toolbox در حالت پیشفرض مخفی میشود (خاصیت auto-hide). اگر شما این حالت را دوست ندارید میتوانید بر روی آیکون سنجاق شکل کنار دکمه close جعبه ابزار کلیک کنید تا Toolbox ثابت بماند و مخفی نشود. برای اضافه کردن یک کنترل به فرم میتوانید بر روی آن دوبار کلیک کنید تا به فرم اضافه شود همچنین میتوانید کنترل را از جعبه ابزار بر روی فرم کشیده و رها کنید (drag and drop). به این نکته توجه کنید که شما فقط میتوانید کنترلها را به ناحیه کاربر فرم اضافه کنید. ناحیه کاربر ناحیه خالی فرم است. برای حذف یک کنترل از روی فرم آن را انتخاب کنید و سپس دکمه Delete بر روی صفحه کلید را فشار دهید. یک کنترل دکمه (button) را به فرم اضافه کنید. بیشتر کنترلها قابلیت تغییر اندازه را دارند. حال مکان و اندازه کنترل ذکر شده را مانند شکل زیر تغییر دهید :
همانطور که در شکل بالا مشاهده میکنید با قرار دادن یک دکمه بر روی فرم ویژوال استودیو در قسمت کدنویسی XAML، کدهای مربوط به این دکمه را به صورت خودکار تولید میکند.
تغییر خاصیت کنترلها
شما میتوانید برخی از خواص فرم و کنترلها را تغییر دهید. برای این کار از پنجره Properties برای مشاهده و تغییر مقادیر همه خواص در دسترس یک کنترل انتخاب شده در صفحه طراحی استفاده میکنیم. به این نکته توجه کنید که برخی از خواص در پنجره Properties نمایش داده نمیشوند و فقط از طریق کد میتوان به آنها دست یافت. یک کنترل را با استفاده از کلیک کردن بر روی آن در صفحه طراحی انتخاب کنید. برای اینکه به شما نشان دهیم که چطور میتوان خاصیت یک کنترل را تغییر داد، بر روی دکمهی روی فرم کلیک کنید و سپس به پنجره Properties بروید.
در داخل جعبه روبروی خاصیت Name کلمه button1 و روبروی خاصیت Content، متن Click Me را بنویسید :
مشاهده میکنید که متن کنترل button تغییر میکند :
همچنین میتوانید با کلیک بر روی فرم، متن آن را تغییر دهید. البته این کار با استفاده از خاصیت Title آن امکان پذیر است. به این نکته توجه کنید که برای انتخاب فرم باید بر روی یک منقطه خالی از آن کلیک کنید نه یک کنترل که بر روی آن قرار دارد.
اضافه کردن یک کنترل کننده رویداد (Event Handler) به کنترل
در بخش آخر این آموزش قصد داریم که به شما نحوه اضافه کردن یک کنترل کننده رویداد را به کنترل آموزش دهیم. کنترل کنند رویداد یاEvent Handler ، قسمتی از برنامه است که مسئولیت کنترل رویدادها را بر عهده دارد. رویداد وقتی به وقوع میپیوندد که یک اتقاف معین رخ دهد. Event Handler هم برای کنترل کردن یک رویداد به کار میرود. در مورد جزییات اداره کردن رویدادها در یک بخش جداگانه بحث خواهیم کرد. هر کنترل یک رویداد پیشفرض مخصوص به خود دارد.
به عنوان مثال رویداد پیشفرض کنترل دکمه، Click و رویداد پیشفرض کنترل فرم Loaded میباشد. کنترل کنندههای رویداد متدهایی هستند که به رویداد وابستهاند و وقتی اجرا میشوند که رویدادها رخ دهند. راه ساده برای اضافه کردن یک کنترل کننده رویداد دابل کلیک کردن بر روی کنترل در محیط طراحی میباشد. ناگفته نماند که این کار باعث اضافه شدن کنترل کننده رویداد به رویداد پیشفرض میشود. برای روشن شدن این مطلب بر روی دکمه button در محیط طراحی کلیک کنید. ویژوال استودیو به صورت خودکار یک کنترل کننده رویداد ایجاد کرده و آن را به رویداد Click کنترل میچسباند. همزمان با ایجاد کنترل کننده رویداد شما وارد قسمت کد نویسی میشوید و نشانگر ماوس نیز در داخل اداره کننده رویداد قرار میگیرد:
مشاهده میکنید که به رویداد کلیک دکمه، کنترل کننده رویداد button1_Click به طور خودکار اضافه شده است. کد MessageBox.Show(“You clicked the button!”); را در داخل کنترل کننده رویداد مربوط به رویداد Click به صورت زیر بنویسید:
private void button1_Click(object sender, RoutedEventArgs e) { MessageBox.Show("You clicked the button!"); }
کلاس MessageBox به شما اجازه میدهد که یک جعبه متن را برای نمایش یک پیغام یا اطلاعات فوری به کاربر فراخوانی کنید. متد ()Show باعث نمایش یک متن خاص در جعبه متن میشود. در مورد کلاس MessageBox در درسهای آینده توضیح میدهیم. برنامه را اجرا کرده و بر روی دکمه کلیک کنید. با اجرای برنامه یک پنجره پیغام که شامل پیامی است که به عنوان آرگومان به متد ()Show ارسال کردهاید نمایش داده خواهد شد.
راه دیگر برای اضافه کردن یک کنترل کننده رویداد به رویداد کنترلها مخصوصاً به رویدادهای غیر پیشفرض استفاده از پنجره Properties است. برای روشن شدن این مطلب اجازه دهید که رویداد Load را به فرم اضافه کنیم. برای برگشتن به محیط طراحی هم میتوانیم بر روی تب MainWindow.xaml کلیک کرده وهم از کلیدهای ترکیبی Shift + F7 استفاده کنیم.
کنترل form انتخاب کرده و سپس از پنجره Properties رویدادهای آن را پیدا کنید. رویدادها در پنجره Properties به وسیله یک آیکون جرقه نمایش داده شدهاند. اگر این آیکون را نیافتید مطمئن شوید که کنترل در محیط طراحی انتخاب شده باشد.
حال پنجره Properties لیستی از رویدادهای مربوط به کنترل انتخاب شده در محیط برنامه نویسی را نشان میدهد. رویداد Loaded مربوط به کنترل form را پیدا کنید. با کلیک بر روی منوی باز شونده (combo box) کنار آن، لیستی از متدهای موجود برای این رویداد نشان داده خواهد شد. سپس میتوانید یک متد برای الحاق به این رویداد انتخاب کنید.
همچنین میتوان با دابل کلیک بر روی رویداد انتخاب شده در پنجره Properties یک کنترل کننده رویداد جدید ایجاد کرد که در این صورت به صورت خودکار وارد محیط کدنویسی شده و کنترل کننده رویداد مناسب برای شما ایجاد میشود. کد پر رنگ شده زیر را در رویداد Loaded بنویسید.
private void Window_Loaded(object sender, RoutedEventArgs e) { button1.Content = "Text changed by the Load event"; }
این دستور خاصیت Content مربوط به دکمه واقع بر روی فرم را تغییر میدهد. رویداد Loaded فرم وقتی روی میدهد که بارگذاری فرم تمام شود. بنابراین با هر بار اجرای برنامه، متن داخل کنترل button تغییر میکند.
حال شما با موفقیت یک گرداننده رویداد را با استفاده از ابزارهای موجود در Visual Studio ایجاد کردید.
بسیارعالی
هزاران درود فراوان.خسته نباشید.اگه امکانش هست یک ویدئوی آموزشی کامل در رابطه با wpf بصورت پروژه محور و امکانات جدید ویژوال استدیو 2019 ارائه بدهید.سپاس فراوان
جناب ابراهیمی سلام در محیط wpf یک فرم ساختم در داخل فرم یک کنترل button قرار دارم نمیتونم property مشاهده کنم
سلام
لطفا آموزش های wpf و java رو تکمیل کنید.
ممنون
سلام دوست عزیز… حقیقتا تا سه ، چهار ماه آینده به خاطر مشغله این دو بخش آپدیت نمیشن، واقعا شرمنده دوستان عزیز شدم، ولی حتما تکمیلشون می کنم. چشم
باسلام
استاد چرا علیرغم اینکه من عضو هستم ولی درس ها برام باز نیست
چندبارهم خارج و وارد شدم ولی درسی ملاحظه نمیشه
من قبلا عضو شدم هزینه هام واریز کردم ولی نمیتونم از مطالب استفاده کنم
چرا؟
سلام، یوزر و پسورد به ایمیلتون ارسال شد. تست کردم مطالب قابل مشاهده هستن
ایشاالله موفق باشین …
من بر عکس شما از تو دانشگاه یاد نگرفتم ، تو نت گشتم و راهنمایی دوستانی مث شما !
ولی wpf رو (چون اطلاعات پیش زمینه ندارم) هر چی توی انجمن ها میخونم ، چیزی متوجه نمیشم 🙂
در آخر بازم موفق باشین !
آقا یونس خیلی عالیه …
اگه لطف کنین ، این بحث رو جدی تر (حرفه ای تر) ادامه بدین خیلی لطف بزرگی کردین (به همه اعضا)
—-
اگه بشه همینطور ادامه داد تا یه برنامه بایگانی اطلاعات (مثلا دفترچه تلفن) رو آموزش بدین ، خیلی عالیه 🙂
سلام ، لطف دارین، چشم حتما ادامه میدم، البته ممکنه یه کم با تاخیر باشه ولی کاملش می کنم ، چون دست تنهام و فصل امتحاناته و… درضمن خیلی از دوستان خواستن که جاوا رو تکمیل کنم، البته هر دو رو تو برنامه دارم..