Bu dökümanda WPF(Windows Presentation Framework)’den ve örnek uygulamalarin (Windows Uygulamalari) yapimindan bahsedecegiz.
Öncelikle bir kac soruya cevap verelim.
1- WPF Nedir?
Wpf, gelismis kullanici arayüzlerini çalistigi sistem üzerinde baskici etki yapmadan performansli bir sekilde yerine getiren gelistirme ve görüntüleme platformu olarak görev yapar.
2- Wpf’nin Windows Form dan farki nedir?
a- Windows Form da 65 adet component bulurken wpf de 50(!) adet component buluyor. Bunun nedeni kullanicilarin geri bildirimleri sonucu oldugu bildirilmektedir.
b- WPF, görüntülemede XAML yapisini kullanarak daha esnek arayüz imkanlari sunar.
c- Wpf ’de uygulamalarinizin farkli çözünürlüklerde grafik arayüzünün olusumunun bozulmasi ve bunun da basinizi çok agritan bir durum oldugundan bu sorun wpf ‘ de ortadan kalkmis ve çözünürlükten bagimsiz bir arayüz olusturma imkani sunulmustur.
d- Günümüzde grafik kartlari oldukça hizlandiklarindan; Wpf nin yeni yapisiyla arayüz olusturulurken GDI kullanilmayip dogrudan GPU(grafik islemcisi) üzerinden islemler yürütülmekte böylelikle çok daha performansli olmakta ve CPU(bilgisayar islemcisi) ‘a binen fazla yük engellenmektedir.
Arayüz Konusunda Dikkat edilmesi gereken husus :
Grafik arayüzlerinin GPU kullanirak olusturulmasi sistemi Vista ile gelen bir sistemdir. Bu sistemle vektörel çizim yaptirilarak çözünürlükten bagimsiz görüntüler elde edilmektedir cünkü bu çizimler bir dizi matematiksel islem sonucu elde edilmekte ve kullanilmaktadir. xp ya da daha önceki sistemlerde grafik arayüzünün olusumunda,animasyonlar vb islerde Vista ya da Win 7 de görülen performans beklenilmesi yanlis olacaktir.
Bilinmesi gerekenler ;
a- Wpf yapisi itibariyle xaml okuyarak çalistigi icin tasarimlari yaparken bu xaml üzerinde degisiklikler yaparak yapmak oldukca zor. Bunu en kolaya indirgemek icin Expression Blend‘ i kurup wpf application’ u seçip oldukca hizli ve rahat bir sekilde tasarimlar yapabilirsiniz. Biz örnek uygulamalarimizi blend üzerinde yapacagiz.
b- Blend’in kullaniminin ve ufak çapli araçlarin ne ise yaradiginin bilinmesi fayda saglacaktir. Cünkü blend ile olan kisimlari genis çapli ele almayacagiz.
Wpf nin Mimarisi

PresentationFramework : Bu yapi wpf araclarini(button,label vs) barindirir.
Presentation Core : Wpf nesneleri disinda özellesmis yeni nesnelere ihtiyaç oldugunda bu katmanda bulunan nesneler kullanilir.
milcore : Wpf araclarinin görüntülenmesini saglayan katmandir. Bu katmanda arayüz olusturma kisminda anlatilanlar (GPU nun kullanilmasi vs ) gerçeklesir.
Uygulama 1
Ilk uygulamamizda sadece bir wpf projesi(blend üzerinden) acalim ve biraz inceleyelim.

xaml kismimizi teker teker anlatmayacagiz tabiki anlatim icin Expression Blend bölümünü ziyaret edebilirsiniz. Ilk uygulamamizda kod kismindan degil de xaml kisminda yeni bir nesne eklendiginde ne tür degisiklikler oldugunu ginceleyecegiz.
Örnek olarak, sari-kirmizi renkte pencerenin tam ortasina bir ellipse ekleyelim ne tür degisiklikler oldugunu inceleyelim.
Tasarimimiz bu sekilde;

Simdi ise yeni xaml kodumuza bakalim;

Gördügünüz üzere yeni eklenen nesneler Grid’in altina tanimlanarak eklenmis. Ayrica renk tanimlamalari vs hepsinin de eklenen nesnenin altina yeni tanimlamalarla eklendigini görüyoruz.
Uygulama 2
Tasarim konusunda pek bilgili olmadigim icin mümkün olgucunca uzak duruyorum tasarim olayindan :) .Simdi en sevdigim kisim kod kismina gecelim. Bende expression blend 3 oldugu icin blend üzerinde yazacagim 2 veya daha alt sürümü olanlar visual studio ortaminda da aynisini yapip uygulayabilirler.(her ikisini de anlatacagim)
Bu uygulamada elipse tiklaninca mesaj yazmasini saglayacagiz.
1. Blend Ortaminda Kod Yazarak;
Bunun icin blendde nesneye tiklayip events penceresinden “MouseLeftButtonUp” i seciyoruz ve asagidaki kodu yaziyoruz.
”MessageBox.Show("Merhaba Okuyucu"); “
Bunun sonucunda elipse tiklaninca mesaj görüntülenecektir.
2. Visual Studioda Kod Yazarak;
Eger blendde eventi tiklatmayip visual studio ortaminda kod yazarak metodlari tanimlamak istiyorsaniz yani kisacasi tasarimci beni ilgilendirmez o blend de calissin ben de visual studio da kodumu yazarim diyenlerdenseniz. Blend’de proje adina sag tiklayarak “Edit in Visual Studio” secenegini secerek kod yazma ekrani ve xaml in bulundugu pencerenin visual studio tarafindan görüntülendigini göreceksiniz.
Örnek kod olarak;

Böylelikle ister Blend ortaminda isterseniz de Visual Studio ortaminda rahatlikla kodlarinizi yazarsiniz. Üstelik tasarimci ve programci ayri ayri çalisarak ayni projeye etki edebilme yetenegine de sahipsiniz.
Said AYDOGAN - comprogrammer