Makale Özeti

Merhaba bundan bir süre önce MS Expression Studio dahilindeki programları anlatmaya başladım. Bir süredir de Expression Design ve Expression Blend'i anlatıyorum. Bu aşamada artık gerçek bir uygulama yapmanın zamanı geldi. (Daha sonra Expression Blend'i anlatmaya devam edeceğim). Bu makale serisinde WPF (Windows Presentation Foundation) ile bir windows uygulaması geliştireceğiz.

Makale


Proje :
Her zamanki gibi önce kendimize bir proje buluyoruz. Daha önce olduğu gibi bu seferde bir FRP Kitap uygulaması hazırlayacağız. Bu uygulamada yazarlar ve onların farklı kitapları bulunacak. Uygulama yazarlara göre filtreleme yapabilecek. Her kitabın adı, yazarı, resmi, yayın evi ve açıklaması gösterilecek.

Kullanılacak Araçlar :
Database olarak XML
Tasarım için Expression Design 2
Uygulama için Expression Blend 2

Fark ettiniz mi bilmiyorum ama bu uygulamada hiç bir C# kodu kullanmayacağız. Elbette daha karışık uygulamalar için kod yazmanız gerekecektir. Ama bu uygulamada buna ihtiyacımız yok.

O zaman ilk adımımız olan XML'i çıkararak işleme başlayalım. Uygulama için hazırladığım XML'i altta bulabilirsiniz.

<?xml version="1.0" encoding="utf-8"?>

<KATALOG>

<YAZAR Yazar="Ursula K. Leguin">
<KITAP>
<NO>1</NO>
<KITAPAD>ATUAN MEZARLARI / YERDENİZ II</KITAPAD>
<KITAPYAZAR>Ursula K. Leguin</KITAPYAZAR>
<YAYINEVI>METİS YAYINLARI</YAYINEVI>
<OZET>Atuan Mezarları'nın konusu tek kelimeyle söylemek gerekirse cinselliktir. Kitapta bir sürü simge var, tabii ki yazarken bunları bilinçli bir şekilde çözümlemedim; bu simgelerin hepsi cinsel simgeler olarak okunabilir. Daha açık söylemek gerekirse kitabı bir kadının büyümesi olarak okuyabilirsiniz. Temalar, doğum, yeniden doğum, yıkım ve özgürlük.</OZET>
<IMAJ>images\U/Makaleler/Resimler/1000002135_01.jpg</IMAJ>
</KITAP>

<KITAP>
<NO>2</NO>
<KITAPAD>MÜLKSÜZLER</KITAPAD>
<KITAPYAZAR>Ursula K. Leguin</KITAPYAZAR>
<YAYINEVI>METİS YAYINLARI</YAYINEVI>
<OZET>"Vermediğiniz şeyi alamazsınız, kendinizi vermeniz gerekir. Devrimi satın alamazsınız. Devrimi yapamazsınız. Devrim olabilirsiniz ancak."
"Romanım Mülksüzler, kendilerine Odocu diyen küçük bir dünya dolusu insanı anlatıyor. İsimlerini toplumlarının kurucusu olan Odo'dan alıyorlar; Odo romandaki olaylardan kuşaklarca önce yaşamış, bu yüzden olaylara katılmıyor, ya da yalnızca zımnen katılıyor, çünkü bütün olaylar aslında onunla başlamıştı.
</OZET>
<IMAJ>images\U/Makaleler/Resimler/1000002135_02.jpg</IMAJ>
</KITAP>

<KITAP>
<NO>3</NO>
<KITAPAD>ÖTEKİ RÜZGAR</KITAPAD>
<KITAPYAZAR>Ursula K. Leguin</KITAPYAZAR>
<YAYINEVI>METİS YAYINLARI</YAYINEVI>
<OZET>"Yerdeniz'e yeniden gidip onu hala hatırladığım haliyle bulmak, ama değiştiğini ve değişmekte olduğunu görmek beni çok memnun etti." - Ursula K. LeGuin- Yerdeniz'in son kitabı Tehanu'nun yazılışından on yıl sonra tanıdık topraklara dönüyor Ursula LeGuin. Kaldığı yerden devam ediyor hikayesine ama bir yandan ta başından başlıyor. Öteki Rüzgar'da yepyeni karakterlerle tanışırken bildiğimiz karakterlerin de bilmediğimiz yönlerini öğreniyoruz. LeGuin'in aşinayı yabancı, olağanı olağanüstü kılan yazarlık gücü sayesinde büyü üzerine, sonsuzluk üzerine, sonra daha basit şeyler, mesela yaşam ve ölüm üzerine uzun bir yolculuğa çıkıyoruz.</OZET>
<IMAJ>images\U/Makaleler/Resimler/1000002135_03.jpg</IMAJ>
</KITAP>
</YAZAR>

<YAZAR Yazar="David Eddings">
<KITAP>
<NO>1</NO>
<KITAPAD>ATEŞTEN KUBBELER</KITAPAD>
<KITAPYAZAR>David Eddings</KITAPYAZAR>
<YAYINEVI>ALTIKIRKBEŞ YAYINLARI</YAYINEVI>
<OZET>Her şey Daresia kıtasında sıradan bir kargaşa olarak başladı ve hızla tüm danyaya yayıldı. Krallar ve İmparatorlar, karşılarındaki düşmanın kimliğini öğrenmeye çalışırken çağlar öncesinden kalma kahramanlar ve tutkalar, yeniden ortaya çıkarak çevrelerine ölümün ve eski düşlerin kokularını yayıyorlardı. Tanrılar, dünyanın yazgısıyla yeniden oynuyor. Yaratılmış her şeyi içine alıp sürükleyecek bir savaş. Ama Anakha... Yazgının dışında ilerleyen Anakha. Kendisinden Tanrıların bile korktuğu Anakha. Sparhawk ve dostları yeniden savaş yoluna düşüyor. Bilinen ve bilinmeyen tüm güçlerin arasında, yaşama sahip çıkıp dünyaya huzuru geri getirebilmek için. Unutmayın, hikayeler ikiye ayrılır; gerçek olanlar ve gerçek olması gerekenler, kararı sizin.</OZET>
<IMAJ>images\E/Makaleler/Resimler/1000002135_01.jpg</IMAJ>
</KITAP>

<KITAP>
<NO>2</NO>
<KITAPAD>BÜYÜLÜ ŞATO / BELGARIAD IV</KITAPAD>
<KITAPYAZAR>David Eddings</KITAPYAZAR>
<YAYINEVI>METİS YAYINLARI</YAYINEVI>
<OZET>"Bir gün, Tanrı Aldur bir çocuk kalbi büyüklüğünde, küre şeklinde bir taş aldı ve yaşayan bir ruh haline getirene kadar elinde evirip çevirdi. İnsanların Aldur Taşı dedikleri bu canlı mücevherin gücü çok büyüktü ve Aldur onunla mucizeler yarattı."Aldur'un kardeşi Tanrı Torak, binyıllar boyunca Taş'ı eline geçirmek için yapmadığını bırakmadı. Onu engellemek için çalışan iki kişi, Aldur'un müridi Büyücü Belgarath ve kızı Büyücü Polgara idi. Belgeriad, Torak'ın Aldur Taşı'nı ele geçirip dünyaya hâkim olmak için verdiği son mücadelenin hikâyesidir.
Büyülü Şato'da, Ctuckhik'in elinden Taş'ı almayı başaran Garion, Polgara ve Belgarath'ın Batı'ya, Riva adasına dönüşlerinin, Garion'un sonunda soyunun mirasına kavuşarak "Belgarion" olmasının ve Batı ordularının Tolnedra İmparatorluğunun Çiçeği, Borune Hanedanının Mücevheri, İmparatorluk Prensesi ve Batı'nın Hükümdarı Ce'Nedra yönetiminde Torak'ın ordularına karşı büyük bir savaşa girişmesinin öyküsü anlatılıyor.</OZET>
<IMAJ>images\E/Makaleler/Resimler/1000002135_02.jpg</IMAJ>
</KITAP>

<KITAP>
<NO>3</NO>
<KITAPAD>KARANDA'NIN İFRİT BEYİ / MALLORYON III</KITAPAD>
<KITAPYAZAR>David Eddings</KITAPYAZAR>
<YAYINEVI>METİS YAYINLARI</YAYINEVI>
<OZET>Garion, Ejderha Tanrı Torak'ı öldürdükten sonra tüm Batı Krallıkları barış ve huzur içinde yaşamaya başlamışlardı. Ta ki Karanlığın Çocuğu ile Işığın Çocuğu arasındaki yeni bir karşılaşmanın alametleri görünmeye başlayana kadar. Üstelik bu karşılaşmada kahramanların kim olacağı ve bunun nihai karşılaşma olup olmayacağı bile belli değildi. Bilinen iki isim vardı sadece: Zandramas ve Cthrag Sardius. Bir insan ve bir taş. Garion, Polgara ve Belgarath, bu kez yeni yol arkadaşlarıyla, "artık olmayan yere" doğru yola çıkacaklardı.Adım adım Sardion'un izini süren Garion ve arkadaşları Malloryon Beşlisinin bu üçüncü kitabında Mallorya İmparatoru Zakath'ın "misafirperverliğinden" kurtulmaya çalışıyorlar. Bir tarafta tüm Mallorya'yı kasıp kavuran veba salgını, kehanetin onları sürüklediği Karanda'da ise ifrit orduları var. Bu arada minik Zith ve Kadife çok önemli bir görevi yerine getiriyorlar. Aniden ortaya çıkan yol arkadaşları hokkabaz Feldegast ise gerçek bir muamma...</OZET>
<IMAJ>images\E/Makaleler/Resimler/1000002135_03.jpg</IMAJ>
</KITAP>
</YAZAR>

<YAZAR Yazar="Margaret Weis">
<KITAP>
<NO>1</NO>
<KITAPAD>BATAN GÜNEŞİN EJDERHALARI</KITAPAD>
<KITAPYAZAR>Margaret Weis</KITAPYAZAR>
<YAYINEVI>ARKABAHÇE YAYINCILIK</YAYINEVI>
<OZET>Batan Güneşin Ejderhaları, Kaos Savaşı'nın bitiminden 40 yıl sonra başlıyor.Bitmek bilmez savaşlarla örselenmiş, büyük ejderhaların gölgesinde sinmiş Krynn halkının yazgısı, bir gece patlayan ve Ansalon'u yıkıp geçen muazzam fırtınayla birlikte yeni bir dönemece giriyor. Fırtınanın yüreğinde, lanetli Neraka Vadisi'nde ortaya çıkan genç bir kızın başını çektiği savaş ufukta belirdi bile. İsmi zikredilemeyen Tek Tanrısının adıyla ülkeleri fetheden Mina adlı bu genç kız, dünyanın ve üzerinde yaşayan halkların ruhu ve yüreği uğruna verilecek, en büyük savaşın habercisi.Margaret Weis ve Tracy Hickman Ruhlar Savaşı üçlemesiyle ve yepyeni, güçlü, inanılır karakterler ve esrarengiz bir olay örgüsüyle Krynn'e geri dönüyor.</OZET>
<IMAJ>images\M/Makaleler/Resimler/1000002135_03.jpg</IMAJ>
</KITAP>

<KITAP>
<NO>2</NO>
<KITAPAD>EJDERHA MIZRAĞI / KIYAMET TUGAYI</KITAPAD>
<KITAPYAZAR>Margaret Weis</KITAPYAZAR>
<YAYINEVI>ANKİRA YAYINCILIK</YAYINEVI>
<OZET>Mızrak Savaşı'nın korkusuz ejderanları, savaş meydanından Kharolis Dağları'ndaki güzel bir vadiye çekilirler. Cücelerin asap bozucu kavgacılıkları, ejderanların kötü talihli ırklarını devam ettirme konusundaki büyük umutlarını gerçekleştirmelerini engellemeseydi, çok güzel olacaktı.Cüceler Thorbardin’de gömülü bir hazinenin yerini gösteren haritayı bulduklarında, ejderanlar da hazine için hararetli bir yarışa sürüklenirler. İki taraf da, Yaz Alevi sırasında Krynn üzerine çöken garip ve korkunç bir kaderin parçası olduklarının pek farkında değillerdir.Kaos'un çocuklarını, ateş ejderhaları ile birlikte içine alan bir kader!Kıyamet Tugayı, Margaret Weis - Don Perrin tarafından yazılmış bir best-seller!</OZET>
<IMAJ>images\M/Makaleler/Resimler/1000002135_01.jpg</IMAJ>
</KITAP>

<KITAP>
<NO>3</NO>
<KITAPAD>ELF YILDIZI / ÖLÜM KAPISI II</KITAPAD>
<KITAPYAZAR>Margaret Weis</KITAPYAZAR>
<YAYINEVI>İTHAKİ YAYINLARI</YAYINEVI>
<OZET>Ölüm Kapısı SerisiYüzyıllar önce, benzersiz bir güce sahip sihirbazlar dünyayı dört âleme ayırdılar -gök, taş, ateş ve su- ve sonra yok oldular. Zaman içinde, büyücüler yalnızca kendi âlemlerinde etkinlik kazanacak büyüler yapmayı öğrendiler, geri kalanlarını ise unuttular. Şimdi sadece, Labirent'te hayatta kalan ve Ölüm Kapısı'nı geçen birkaç kişi dört âlemin tümünün varlığından haberdar -ama onlar bile koparılmış dünyanın gizemlerini henüz çözmüş değiller.Elf YıldızıNemli Pryan'da, Ateş Âleminde, asla batmayan güneş ve zengin yağmurlar öylesine engin bir orman yaratmıştır ki, insanlar ve elfler ağaç tepelerinde, cüceler ağaç kovuklarında yaşamaktadırlar. İnsanlar ile cücelerin bitmek tükenmek bilmez savaşları, onlara savaşacak silah satan aristokrat elflere düzenli bir kâr ve hammadde akışı sağlamaktadır. Nesiller boyu süren ayrılıklar ve ırklar arasındaki nefret giderilmemektedir -efsanevi titanların ellerinde yok olma tehdidi altındayken bile, Zekâları ve bir kehanet dışında pek az şeyle silahlanmış olan bir elf, bir insan ve bir cüce, dünyayı yıkımdan kurtarmak için birleşmek zorundadır.</OZET>
<IMAJ>images\E/Makaleler/Resimler/1000002135_03.jpg</IMAJ>
</KITAP>
</YAZAR>

<YAZAR Yazar="R. A. Salvatore">
<KITAP>
<NO>1</NO>
<KITAPAD>KRİSTAL PARÇASI / BUZYELİ VADİSİ I</KITAPAD>
<KITAPYAZAR>R. A. Salvatore</KITAPYAZAR>
<YAYINEVI>ARKABAHÇE YAYINCILIK</YAYINEVI>
<OZET>Unutulmuş Diyarlar'ın en kuzeyinde...Büyük bir büyü gücüne sahip Kristal Parçası'nın, kendini kanıtlamak isteyen bir büyücü çırağı Akar Kesell'in eline geçmesiyle başladı herşey...Bir dağın gölgesinde, üç göl ile çevrili on küçük kasaba...Kristal Parçası'nın yanlış ellerde olması nedeni ile yok olmak üzere olan on küçük kasaba...Eski dost Drizzt Do'Urden ile arkadaşları; Cüce Bruenor, Güçlü Barbar Wulfgar ve Buçukluk Regis...İnleyerek esen bir rüzgar yüzünüze çarparken, ölümün çok da yabancı bir şey olmadığını öğreneceksiniz...Bu çorak topralarda bir destan yazılmak üzere; Buzyeli Vadisi Destanı.</OZET>
<IMAJ>images\S/Makaleler/Resimler/1000002135_01.jpg</IMAJ>
</KITAP>

<KITAP>
<NO>2</NO>
<KITAPAD>MİRAS</KITAPAD>
<KITAPYAZAR>R. A. Salvatore</KITAPYAZAR>
<YAYINEVI>ARKABAHÇE YAYINCILIK</YAYINEVI>
<OZET>Hayat, şu anda Drizzt Do'urden için iyi, şimdiye kadar hiç olmadığı kadar huzur dolu. En yakın dostu cüce Bruenor, Mithril Salonunu geri alıp tahtına çıkmıştı ve en sıkı yoldaşları Wulfgar ile Catti-brie de sonbaharda evlenecekler.Hatta Buçukluk Regis bile geri döndü. Şimdi tüm dostlar bir aradalar ve Mithril Salonunu güvenli madenlerinde mutlu bir yaşam sürüyorlar.Ama Drizzt, bu huzur dolu hayatı elde edene kadar çok kudretli düşmanlar da edinmiştir.</OZET>
<IMAJ>images\S/Makaleler/Resimler/1000002135_02.jpg</IMAJ>
</KITAP>

<KITAP>
<NO>3</NO>
<KITAPAD>SESSİZ KILIÇ I</KITAPAD>
<KITAPYAZAR>R. A. Salvatore</KITAPYAZAR>
<YAYINEVI>ARKABAHÇE YAYINCILIK</YAYINEVI>
<OZET>Cehennem'den dönen Wulfgar, çekiciyle yok edemeyeceği iblisler olduğunu öğreniyor. Entreri, gölgelerdeki imparatorluğunu yeniden kurmak ve tüm düşmanlarıyla hesaplaşmak için Calimport'a geri dönüyor... Drizzt tüm yaraların kanamadığını ve tüm kılıçların öldürmediğini öğreniyor... Yol arkadaşları, şeytani ziynet Crenshinibon'u yok etmek için büyük bir maceraya atılıyor, ancak kristal parçası onların rahip Cadderly'ye ulaşmasını engellemeye kararlı. Kesişen ve ayrılan yollarla dolu bir maceranın tam ortasında, pala ile hançer yeniden çarpışıyor ve kılıçlar nihayet sessizliği bozuyor.</OZET>
<IMAJ>images\S/Makaleler/Resimler/1000002135_03.jpg</IMAJ>
</KITAP>
</YAZAR>

</KATALOG>


Evet XML'imiz hazır olduğuna göre uygulamanın tasarımını hazırlamaya başlayalım. Expression Design 2'yi açın ve File>New ile yeni bir çalışma dosyası açın.


New Document penceresinde dosyanızın ismini ve boyutlarını belirleyip OK'e basın. Bu örnekte 800*600 çalışacağız.



Layer paletindeki layer ın ismini Background olarak değiştiriyorum. Bu layer da genel tasarımın birleşenleri bulunacak.



Tool box dan "Rectangle" ı seçiyoruz.



Çalışma alanımıza 800'e 600 lük bir dikdörtgen çiziyoruz.


Bu dikdörtgenin stroke'unu none yapıyoruz.



Doldurma rengini ise gradient yapıyoruz.



Çizdiğimiz şekil şu şekilde gözükmeli.



Tool boxdan "Gradient Transform" aracını seçiyoruz ve bu araç yardımıyla şeklimizin gradient renginin yönünü değiştiriyoruz.



Gradient rengini gradient barı yardımıyla düzenliyoruz.



Tasarımımız şu anda bu durumda.



Tasarımın üstüne "Rectangle" aracını kullanarak bir çubuk ekliyoruz.



Yeni uzun çubuğun özellikleri alttaki gibidir.



Şimdi Tool box daki "Text" i kullanarak uygulamamızın adını yazıyoruz. "FRPKitap"



Yazdığımız yazının özelliklerinden Font tipini belirliyoruz.



Yazımıza "Drop Shadow" kullanarak gölge veriyoruz.



Drop Shadow efektinin özelliklerini ayarlıyoruz.


Yazımızın renklerini de ayarlayınca alttaki gibi bir sonuç elde ediyoruz.



Genel tasarımımıza son eklemeyi yapmak için dışarıdan transparan bir PNG imaj ekliyorum. 



İşte sonuç...



Layer düzenimiz şu şekilde oluştu.



Ama Expression Design'da henüz işimiz bitmedi. Bunların dışında bir sayfanın nasıl görüneceğini belirlemeliyiz. Bunun için yeni bir layer oluşturuyoruz.



Background layerını yanlışlıkla değiştirmemek için kilitliyoruz.



Temp layerında işimiz bittiğinde bir sayfamız bu şekilde görünecek. En son, bir tek sağ üst köşeye yazarlara göre filtreleme yapan bir drop down menü ekleyeceğiz. 



Yeni layer düzenimiz şu şekilde oluştu.



Her şeyin tamam olduğuna karar verdiysek artık çalışmamızı sonlandırmaya başlayabiliriz. Sonuçta bu tasarımı BLEND'de kullanacağız. Bu sebeple çalışmanın XAML çıktısını almalıyız. Bunun için File>Export'a basıyoruz.


Alttaki gibi Export penceresi açılmıştır.



Elbette şu anda ihtiyacımız olan PNG değil bu yüzden "Export Properties" deki "Format" seçeneklerinde "XAML WPF Canvas" ı seçiyoruz. Diğer export formatlarına dikkat edin lütfen.



Alttaki screen de kırmızı işaretli yerlere dikkat edin. Seçimlerinizi yaptıktan sonra "Export All" a basın.



Expression Blend'de kullanmak üzere tasarımınızın XAML çıktısı hazırdır.





"Expression ile WPF Uygulaması" makale serisinin bu adımında Expression Design ile tasarımı hazırlayıp XAML çıktısını aldık.  Bir sonraki makalede Blend'de Proje oluşturup, tasarımı bu projeye oturtucağız. XML ile bağlantı kurup, veri çekeceğiz.

Tasarımın Expression Design dosyasının buradan, XAML çıktısını buradan indirebilirsiniz.

İyi çalışmalar

Teşekkürler.
Erbuğ Kaya
www.erbugkaya.com