TOC

This article is currently in the process of being translated into Lithuanian (~99% done).

Apie WPF:

WPF vs. WinForms

Praeitame skyriuje mes kalbėjome apie tai, kas yra WPF ir truputį apie WinFormas. Šiame skyriuje mes bandysime palyginti šias sistemas. Nors jos leidžia pasiektį tą patį tikslą, bet turi DAUG skirtumų. Jei Jūs niekada anksčiau nedirbote su WinFormomis ir ypatingai jei WPF yra Jūsų pirmoji GUI sistema, tai galite praleisti šį skyrių. Bet jei domina šių sistemų skirtumai, tai galite skaityti toliau.

Pirmas pats svarbiausias skirtumas yra tas, kad WinFormos yra paprasčiausias sluoksnis, uždėtas ant standartinių Windows valdymo elementų (pvz. tekstinio lauko). WPF yra sukurta nuo nulio ir beveik niekada nepriklauso nuo standartinių Windows elementų. Tai gali pasirodyti menku skirtumu, bet iš tikrųjų taip nėra. Jei esate dirbę su sistemomis, kurios priklauso nuo Win32/WinAPI, tai greičiausiai jau tai pastebėjote.

Geriausias pavyzdys yra mygtukas su paveiksliuku ir tekstu ant jo. Tai nėra standartinis Windows valdymo elementas, todėl WinFormos nesiūlo tokios mygtuko formos. Turite piešti paveiksliuką patys, kurti savo mygtuką, kuris palaiko paveiksliukus arba naudoti trečiųjų šalių įrankius. Naudojant WPF, mygtukas gali talpinti bet ką, nes tai yra tik rėmelis su turiniu ir įvairiomis būsenomis (pvz.: užvestas pelės kursorius, paspaustas klavišas). WPF mygtukas yra "nematomas", kaip ir kiti WPF komponentai. Tai reiškia, kad jie gali turėti savyje visą eilę kitų valdymo elementų. Norite turėti mygtuką su paveikslėliu ir tekstu? Tiesiog įdėkite Image ir TextBlock elementą į mygtuko vidų ir viskas! Jūs tiesiog negausite tokio lankstumo standartinėse WinFormose. Štai kodėl rinka yra pilna paprastų sprendimų, tokių kaip mygtukai su paveiksliukais

Šio lankstumo trūkumas yra tame, kad kartais yra daug sunkiau pasiekti rezultatą, kurį labai paprasta padaryti su WinFormomis. Bet taip gali atrodyti tik pradžioje, kai ListView elementui tenka kurti šablonus su paveikslėliais ir tekstais, o WinFormose tai padarome viena kodo eilute.

Tai buvo vienas skirtumas, bet kai pradėsite dirbti su WPF, suprasite, kad WPF tiesiog pasiekia tikslą kitu keliu, kartais geresniu, kartais blogesniu. Neprivalote daryti taip, kaip nustatyta pagal Windows sistemą, bet už šį lankstumą tenka mokėti didesniu darbu norint kurti pagal Windows sistemą.

Toliau seka pilnas subjektyvus WPF ir WinFormų privalumų sąrašas. Jis leis geriau suprasti į ką mes gilinsimės toliau.

WPF privalumai

  • Naujesnė ir labiau pritaikyta šiuolaikiniams standartams
  • Microsoft naudoja daugeliui naujų programų, pvz. Visual Studio
  • Lankstensnė sistema, leidžianti atlikti daugiau dalykų nekuriant ir neperkant naujų valdymo elementų.
  • Kai Jums reikės naudoti trečiųjų šalių sukurtus komponentus, jie greičiausiai bus pritaikyti WPF, nes ši sistema naujesnė
  • XAML leidžia lengvai kurti ir redaguoti grafinę sąsają, todėl darbas gali būti padalintas tarp dizainerių (XAML) ir programuotojų (C#, VB.NET ir kt.)
  • Duomenų perdavimo mechanizmai, kurie leidžia skaidriau atskirti duomenis nuo sąsajos
  • Grafinės sąsajos spartesniam veikimui naudojama techninė įranga.
  • Leidžia kurti sąsajas tiek Windows, tiek tiklinėms programoms (Silverlight/XBAP)

WinFormų privalumai

  • Senesnė todėl labiau išbandyta
  • Sukurta labai daug trečiųjų šalių elementų, kuriuos galima nusipirkti arba gauti nemokamai
  • Visual Studio aplinka yra geriau pritaikyta WinFormoms. WPF reikia skirti daugiau darbo laiko