This article is currently in the process of being translated into Afar (~99% done).
WPF vs. WinForms
ယခင်အခန်းတွင်၊ WPF ဆိုသည်မှာ WinForms အကြောင်း အနည်းငယ်ပြောခဲ့ပါသည်။ ဤအခန်းတွင်၊ ၎င်းတို့နှစ်ခုကို နှိုင်းယှဉ်ကြည့်မည်၊ အကြောင်းမှာ ၎င်းတို့သည် တူညီသောရည်ရွယ်ချက်ကို ဆောင်ရွက်နေသော်လည်း ၎င်းတို့ကြားတွင် ကွဲပြားမှုများစွာ ရှိနေသောကြောင့် ဖြစ်သည်။ အကယ်၍ သင်သည် ယခင်က WinForms နှင့် တွဲမလုပ်ဖူးပါက၊ အထူးသဖြင့် WPF သည် သင်၏ပထမဆုံး GUI မူဘောင်ဖြစ်ပါက၊ သင်သည် ဤအခန်းကို ကျော်သွားနိုင်သည်၊ သို့သော် ကွဲပြားမှုများကို သင်စိတ်ဝင်စားပါက ဆက်လက်ဖတ်ရှုပါ။
WinForms နှင့် WPF အကြား အရေးကြီးဆုံး ခြားနားချက်မှာ WinForms သည် ပုံမှန် Windows Control များ၏ထိပ်တွင် အလွှာတစ်ခုဖြစ်သော်လည်း (ဥပမာ TextBox) WPF သည် အစကတည်းက တည်ဆောက်ထားပြီး အခြေအနေအားလုံးနီးပါးတွင် Standard Windows ထိန်းချုပ်မှုများကို အားမကိုးဘဲ၊ . ၎င်းသည် သိမ်မွေ့သော ခြားနားချက်ဟု ထင်ရသော်လည်း Win32/WinAPI ပေါ်တွင် မူတည်သော မူဘောင်တစ်ခုဖြင့် လုပ်ဆောင်ဖူးပါက သင် သတိပြုမိမည်မှာ အမှန်မဟုတ်ပေ။
ဤအရာ၏ ကောင်းမွန်သော ဥပမာမှာ ပုံနှင့် စာသားပါသော Button တစ်ခုဖြစ်သည်။ ၎င်းသည် Standard Windows Control တစ်ခုမဟုတ်ပါ၊ ထို့ကြောင့် WinForms သည် သင့်အား ဤဖြစ်နိုင်ချေကို ဘောင်အတွင်းမှ မပေးနိုင်ပါ။ ယင်းအစား သင်သည် ရုပ်ပုံကို ကိုယ်တိုင်ရေးဆွဲရန်၊ ရုပ်ပုံများကို ပံ့ပိုးပေးသည့် သင်၏ကိုယ်ပိုင် Button ကို အကောင်အထည်ဖော်ရန် သို့မဟုတ် ပြင်ပ အခြား control ကို အသုံးပြုရမည်ဖြစ်သည်။ WPF ဖြင့်၊ Button တစ်ခုသည် အခြေခံအားဖြင့် အကြောင်းအရာနှင့် အမျိုးမျိုးသောအခြေအနေများ (ဥပမာ- မထိမိ၊ ပျံဝဲ၊ ဖိထားသည်) ဖြစ်သောကြောင့် မည်သည့်အရာမဆို ပါဝင်နိုင်သည်။ WPF ခလုတ်သည် အခြား WPF ထိန်းချုပ်မှုအများစုကဲ့သို့ "ပုံပန်းသဏ္ဍန်" ဖြစ်သည်၊ ဆိုလိုသည်မှာ ၎င်းတွင် ၎င်း၏အတွင်း၌ အခြားသော Control များ ပါဝင်နိုင်သည်ဟု ဆိုလိုသည်။ ပုံတစ်ပုံနှင့် စာသားအချို့ပါသော Button တစ်ခု လိုချင်ပါသလား။ ခလုတ်အတွင်းတွင် ပုံတစ်ခုနှင့် TextBlock ထိန်းချုပ်မှုတစ်ခုကို ထည့်လိုက်ရုံဖြင့် သင်ပြီးပါပြီ။ Standard WinForms ထိန်းချုပ်မှုများမှ ဤကဲ့သို့ ပြောင်းလွယ်ပြင်လွယ်ကို သင် အလွယ်တကူ မရနိုင်ပါ၊ ထို့ကြောင့် ပုံများပါသော ခလုတ်များကဲ့သို့ ရိုးရှင်းသော အကောင်အထည်ဖော်မှုများအတွက် စျေးကွက်ကြီးတစ်ခု ရှိနေပါသည်။
အားနည်းချက်မှာ WinForms ဖြင့်အလွန်လွယ်ကူသောအရာတစ်ခုကိုရရှိရန် WPF က ခက်ခက်ခဲခဲ ပိုရေးရမှာပါ။ WinForm က ListView ဆိုပါစို့ တစ်ကြောင်းတည်းနဲ့ အားလုံးပီးသွားတဲ့အချိန်မှာ WPF ကတော့ ပုံတွေ စာတွေ Alignment တွေနဲ့ အလုပ်ရှုပ်နေတုန်း အာ့လိုခံစားမှုဖြစ်စေမှာပါ။
ဤသည်မှာ ခြားနားချက်တစ်ခုမျှသာဖြစ်သော်လည်း၊ သင် WPF နှင့်အလုပ်လုပ်သောအခါ၊ ၎င်းသည် အမှန်တကယ်တွင် အခြားခြားနားချက်များစွာအတွက် အရင်းခံအကြောင်းရင်းဖြစ်ကြောင်း သင်သဘောပေါက်လာလိမ့်မည် - WPF သည် ၎င်း၏ကိုယ်ပိုင်နည်းလမ်းဖြင့် အရာများကို သာလွန်ကောင်းမွန်စေရန်၊ ပိုဆိုးအောင်ပြုလုပ်ခြင်းသာဖြစ်သည်။ Windows နည်းလမ်းအတိုင်း လုပ်ဆောင်ရန် သင်သည် အတားအဆီးမရှိတော့ဘဲ၊ ဤကဲ့သို့သော ပြောင်းလွယ်ပြင်လွယ်ရရှိရန်၊ သင်သည် Windows နည်းလမ်းအတိုင်း လုပ်ဆောင်ရန် အမှန်တကယ်ကြိုးစားနေသည့်အခါတွင် သင်သည် အနည်းငယ်ပိုသောအလုပ်ဖြင့် ပေးချေရမည်ဖြစ်ပါသည်။
အောက်ဖော်ပြပါသည် WPF နှင့် WinForms အတွက် အဓိက အားသာချက်များ ၏ လုံးလုံးလျားလျား ဘာသာရပ်ဆိုင်ရာ စာရင်းတစ်ခုဖြစ်သည်။ ဘာတွေလဲ ဘယ်လိုလုပ်လုပ်ရမဲတော့ နားလည်စေမှာပါ။
WPF ၏အားသာချက်များ
- ၎င်းသည် ပိုမိုသစ်လွင်ပြီး လက်ရှိစံနှုန်းများနှင့် ပိုမိုကိုက်ညီပါသည်။
- Microsoft သည် ၎င်းကို အပလီကေးရှင်းအသစ်များစွာအတွက် အသုံးပြုနေသည်၊ ဥပမာ။ Visual Studio
- ၎င်းသည် flexible ဖြစ်သောကြောင့် Control အသစ်များကို ရေးရန် သို့မဟုတ် ဝယ်စရာမလိုဘဲ သင်ပိုမိုလုပ်ဆောင်နိုင်သည်။
- 3rd Party controls များကို သင်အသုံးပြုရန်လိုအပ်သောအခါ၊ ဤ control များ၏ developer များသည် WPF တွင်ပိုမိုအာရုံစိုက်လာဖွယ်ရှိသည်
- XAML သည် သင်၏ GUI ကို ဖန်တီးရန်နှင့် တည်းဖြတ်ရန် လွယ်ကူစေပြီး အလုပ်အား ဒီဇိုင်နာ (XAML) နှင့် ပရိုဂရမ်မာ (C#၊ VB.NET စသည်ဖြင့်) အကြား ပိုင်းခြားနိုင်စေပါသည်။
- Databinding သည် data နှင့် layout ကို ပိုမိုသန့်ရှင်းစွာ ခွဲထုတ်နိုင်စေပါသည်။
- ပိုမိုကောင်းမွန်သောစွမ်းဆောင်ရည်အတွက် GUI ကိုဆွဲရန်အတွက် hardware အရှိန်မြှင့်ခြင်းကို အသုံးပြုသည်။
- ၎င်းသည် သင့်အား Windows application များနှင့် Web application (Silverlight/XBAP) နှစ်ခုလုံးအတွက် User Interface များကို ပြုလုပ်နိုင်စေမည်ဖြစ်သည်။
WinForms ၏အားသာချက်များ
- ကြာပြီဖြစ်တဲ့အတွက် လုပ်ပီးသားတွေ ဖြစ်နေပြီးသားနေမှာပါ
- 3rd party control free/paid အများကြီးရှိနေပြီးသား ဖြစ်နေမှာပါ
- Visual Studio သည် WPF ထက် WinForms အတွက် ပိုကောင်းနေဆဲဖြစ်သည်။
- Afar
- Afrikaans
- Albanian
- Arabic
- Bulgarian
- Catalan
- Chinese
- Croatian
- Czech
- Danish
- Dutch
- Finnish
- French
- German
- Gujarati
- Hebrew
- Hindi
- Hungarian
- Indonesian
- Italian
- Japanese
- Kannada
- Korean
- Lithuanian
- Macedonian
- Norwegian Bokmål
- Persian
- Polish
- Portuguese
- Romanian
- Russian
- Serbian
- Slovak
- Slovenian
- Spanish
- Swedish
- Tamil
- Thai
- Turkish
- Ukrainian
- Uzbek
- Vietnamese