Mehmet Bilen

Wpf ile Menü oluşturma ve kodlama

In c#, Wpf on Ocak 12, 2010 at 9:51 am

Öncelikle yeni bir wpf projesi oluşturuyorum, daha sonra xaml kısmında kullanacağım menüye uygun tasarımı yapıyorum. Menü oluşturmak için Menu ve MenuItem kontrollerini kullanacağım.

 Tasarım Kısmı

                <Menu>

            <MenuItem Header=”Düzen”>

                <MenuItem Header=”Geri Al” x:Name=”btn_geri_al”>

                <MenuItem Header=”Kopyala” x:Name=”btn_kopyala”>

                <MenuItem Header=”Yapıştır” x:Name=”btn_yapis”>

            MenuItem>

        </Menu>

 Bu tasarım ile bir menü içine “Düzen” adında alt menü ekledim. Bunun içine ise 3 tane MenuItem yani  komut ekledim. Bu komutları bir buton olarak düşünebilirsiniz, aynı buton gibi click olaylarını yakalayabilirsiniz. Bizde öyle yapıcağız. Siz programda kullanacağınız içeriğe göre menülerinizi şekillendirebilirsiniz. Ben burada sadece düzen menüsü adı altında alt bir menü oluşturdum ama siz daha fazla menü eklemek isterseniz, Menu tag’ının içine birden fazla MenuItem ekleyerek bunu yapabilirsiniz.

Oluşan menüye bir bakalım.

Kodlama Kısmı

 Xaml kodları ile aramız pek yoksa bu menünün aynısını C# kodları ile de oluşturabiliriz. Nasıl mı ? Şöyle düşünelim Wpf’in getirdiği yeniliklerin en başında tasarım olarak çizilebilen her şeyin bir .Net nesnesi olması yer alır. O yüzden Wpf’teki bütün nesneler bütün animasyonlar bütün özelliklere kod tarafından ulaşabilir. Bu kadar laf  kalabalığından sonra aynı menüyü bir de kodla oluşturalım.

Menu yeni_menu = new Menu();

            MenuItem duzen_menusu = new MenuItem { Header = “Düzen” };

            yeni_menu.Items.Add(duzen_menusu);

            // Yeni bir menü oluşturarak içine düzen menüitem’i ekledik.

            MenuItem geri_al = new MenuItem { Header = “Geri Al” };

            MenuItem kopyala = new MenuItem { Header = “Kopyala” };

            MenuItem yapistir = new MenuItem { Header = “Yapıştır” };

            //üç tane komut oluşturduk.

            duzen_menusu.Items.Add(geri_al);

            duzen_menusu.Items.Add(kopyala);

            duzen_menusu.Items.Add(yapistir);

            // oluşturduğumuz komutları düzen alt menüsünün içine ekledik.

            AnaPencere.Children.Add(yeni_menu);

            // en son olarak oluşturduğumuz menüyü kullanmak istediğimiz yere ekledik.

Derleyip çalıştırdığımız da ilk oluşturduğumuz menüden hiçbir farkının olmadığını göreceksiniz.Bunun dışında iki menüde de komutları sanki bir menü gibi tekrar tekrar kullanarak iç içe menüler oluşturabiliriz. Ms Word’deki menü kullanımlarını incelerseniz aynısını görebilirsiniz. Artık Windows 7 ‘nin gelmesiyle beraber bu menüler yavaş yavaş tarihe karışıyor. Ribbon denilen yeni bir menü tasarımı geliyor. Office 2007 ‘ye bakarsanız ne demek istediğimi anlarsınız, ama neticede şu an ki menü mantığını bilmeden ribbon mantığına geçmek biraz zor gelebilir. Artı olarak şu an ribbon geliştirmek programcılar için büyük bir eziyet belki visual studio 2010’un gelmesiyle birlikte bu karmaşa çözüme kavuşur.

 Şimdi bu eklediğimiz komutlara bir event ekleyerek yazımızı bitirelim. Herkese iyi çalışmalar

Mehmet Enver Bilen enver_emb@hotmail.com

geri_al.Click += (sender, e) =>

            {

                    //işleme konacak kodumuz buraya gelecek

            };

Yorum yapın

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Değiştir )

Twitter picture

You are commenting using your Twitter account. Log Out / Değiştir )

Facebook photo

You are commenting using your Facebook account. Log Out / Değiştir )

Connecting to %s

Follow

Get every new post delivered to your Inbox.