A
B
C
Ç
D
E
F
G
Ğ
H
I
İ
J
K
L
M
N
O
P
R
S
Ş
T
U
Ü
V
Y
Z
Q
W
X
+ İçerik Ekle
WPF, NotePad, Uygulaması
WPF NotePad Uygulaması

WPF NotePad Uygulaması Programlamaya yeni başlarken genelde ilk olarak console application, sonra form application daha sonra da web application şeklinde uygulamaları tanımaya ve geliştirmeye başlarız. Bildiğiniz gibi WPF uygulamalarıda windows uygulamalarının bir diğer çeşidi hatta yeni nesil form uygulamaları demiştik. Bu makalemizde istedim ki windows uygulamalarında yaptığımız gibi bir notePad projesi yapalım ve bakalım nasıl bir şey ortaya çıkacak hep birlikte görelim.

Tabi önce editorumuz içerisinde kullanacağımız bazı kontrollerden söz edelim. Her notePad uygulamasında olduğu gibi bir menümüz olacak. Bunun için item controllerden yararlanacağız.

WPF’de item controlleri kullanırken iki işlem gerçekleştiriyoruz. İlki xaml tarafında nesnelerimizin item özelliğine değer atamak, ikincisi ise kod tarafında databind ile nesnemize verileri doldurmak.

Sık kullanılan item controller’den bazıları ContextMenu ile MenuItem’dır. Bizde örneğimizde MenuItem’dan yararlanacağımız için bir giriş yapalım.




Kullanılan bir kontrole ilişkin özel menü oluşturulmak istendiğinde ContextMenu’den yararlanıyoruz. Örneğin, textBox nesnemizin ContextMenu özelliğinden yararlanarak aşağıdaki gibi bir MenuItemlarını gösterelim.



Uygulamamızı çalıştıralım.




Gördüğünüz gibi textBox içerisindeki metinle ilgili işlem yapmak için bazı item’lar oluşturduk. Fakat herhangi bir işlem yapmayacaktır, çünkü bildiğiniz gibi henüz databind işlemini ve kod kısmında gerekli komutlarımızı yazmadık. Bu kısmı editörümüzü yazarken göreceğimiz için örnekte sadece contextMenu ve MenuItem mantığı gösterilmektedir.

Tab Controller

Tek bir form üzerinde birden fazla ekran göstermek için oldukça yararlı olabilecek bir kontroldür. Ya da Windows Form uygulamalarında adım adım bir işlem yaptırmak istediğinizde de oldukça başarılı bir uygulama olacaktır. Sonrasında ise adım adım işlemleri yapmış olduğunuz form kontrollerinin içerisinde yer alan değerleri DataBinding yardımı ile diğer kontrollerdeki değerler ile birleştirerek istediğiniz işlemleri yapabilmeniz mümkündür.

Toolbar

Son kullanıcıya resimli olarak araç kutusu göstermeye olanak tanımaktadır. Örneğin kaydetme işlemine yarayan bir disket resmi gibi. Hemen bir örnekle açıklığa kavuşturalım.





Artık projemize geçebiliriz.

Öncelikle Wpf Application seçerek yeni bir proje oluşturalım ve isim olarak WpfTextEditor verelim.

Projemizin MainWindow.xaml dosyasına bir tane DockPanel ekleyelim. Sonra aşağıdaki gibi kodlarımızı yazalım.



Gördüğünüz gibi editörümüze menuItem nesnelerini yerleştirdik.



Şimdi de Menumüzden sonra DockPanel içerisinde uygun bir alana Status Bar ekleyelim.




Gördüğünüz gibi textBox nesnemize bind ettik ve path’i textBox’ımızın uzunluğuna bağladık ki bize girelen karakter adedini gösterebilsin.

Şimdi de design kısmına göz atalım. Bakalım ne gibi bir değişiklik oldu.



Dikkat ederseniz StatusBar eklenmiş, ve text içerisine girilen karakter sayısını bize bildiriyor.


Şimdi de bir toolbar ekleyelim. Öncelikle ToolBarTray nesnemizi ardından ise Toolbar’ı menumüzün alt kısmına gelecek şekilde yerleştiriyoruz.




Hemen ne yaptık bir bakalım. Toolbar nesnemizi ToolbarTray içerisine ve DockPanelin en üst kısmına yerleştirdik.

Copy işlemi için bir button nesnesi oluşturduk hemen ardında da menuye ait item’ları görüntüleyecek bir checkBox nesnesi yerleştirdik. Uygulamamızın ekran görüntüsü aşağıdaki gibidir.

Şimdi de menu içerisine eklediğimiz item’ların işlevlerini belirtelim.

Projemizin kod kısmına gidelim ve Custom Kontrollerimizi yazalım. Exit ve WordWrap için aşağıdaki gibi kodlarımızı MainWindow.cs dosyasına ekliyoruz.

Şimdi .xaml tarafında son bir kaç işlemi yapmadan önce projemizi derleyelim. Sonra da aşağıdaki gibi gerekli değişikliği yapalım.

Editörümüz hazır, evet isterseniz editörümüze bir de logo ekleyelim. Aşağıdaki gibi Window penceresinin properties özelliklerinde Icon’ı bulup logomuzun path’ini ekliyoruz.



Tamamdır. Uygulamamızı derleyip çalıştırdığımızda aşağıdaki gibi bir ekran görüntüsü ile karşılaşırız.




Hiç fena değil, elbette çok daha fazla özellik eklenerek special bir ürün oluşturulabilir. :)
Projeye ait kaynak kodları buradan
indirebilirsiniz. Herkese iyi çalışmalar...