Yazılımcının Günlüğü | YazilimGunlugu.Com
Arama
Makale Kategorileri
Üye Girişi
Şuanki online üyeler()
Aktif üye bulunmamaktadır.


WPF - Routed Event Kontrolü

Yazar: Turhal Temizer

Kategori: WPF

Eklenme Tarihi: 02.11.2009 04:15:26

Bu yazımızda Route Event ları kontrol etmek için Event Manager sınfını nasıl kullanabileceğimizi inceliyoruz.
Windows Presentation Foundation (WPF) ile uygulama geliştirirken karşılaştığımız farklılıklara ne tür çözümler getirebileceğimizi incelemeye devam ediyoruz. Bu sefer inceleyeceğimiz konu WPF uygulamalarında kullanmış olduğumuz Routed Event ları incelemek olacaktır. Event kontrolü profesyonel projeleri yönetirken, süreçleri takip ederken ve uygulama geliştirirken oldukça gerekli bir işlemdir. Fakat bu işlemi hadi kontrol edelim diyince yapamıyoruz. Peki, nasıl yapabiliyoruz? İncelemeye çalışalım.

Projelerin kontrolü esnasında kullandığımız eventları takip etmek istediğimiz zamanlar olur. Bu durumda event manager sınıfnı kullanmak yeterli oluyordu. Ancak bu durumda WPF kullanırken biraz daha farklılaşıyor. EventManager sınıfında dönen kayıtların içerisinde dolaşıp EventManager 'in alt özelliklerinden RegisterClassHandler ile yakalanması gerekmektedir. Sonrasında bu event ları görebilir duruma geliyoruz.

Şimdi küçük bir örnek yardımı ile nasıl kontrol edebileceğimize göz atalım.

Visual Studio 2008 ya da 2010 üzerinde WPF projesi oluşturuyoruz. Sonrasında oluşturmuş olduğumuz projeye UserControl ekliyoruz. Sonrasında userControlLoaded olayını içine alacak şekilde aşağıdaki kod bloğunu ekliyoruz.

UserControl1.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;

namespace EventManager_
{
    /// <summary>
    /// Interaction logic for UserControl1.xaml
    /// </summary>
    public partial class UserControl1 : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
            Loaded += new RoutedEventHandler(UserControl1_Loaded);
        }

        void UserControl1_Loaded(object sender, RoutedEventArgs e)
        {
            var eventManager = EventManager.GetRoutedEvents();
            foreach (var routedEvent in eventManager)
            {
                EventManager.RegisterClassHandler(typeof(UserControl1), routedEvent, new RoutedEventHandler(handler));
            }
        }
        internal static void handler(object sender, RoutedEventArgs e)
        {
            Console.WriteLine(e.OriginalSource + "=>" + e.RoutedEvent);
        }
    }
}

Yapmış olduğumuz bu işlem sonrasında artık çalıştırılan eventları izlemek kalıyor. Peki çalıştırdığımızda nasıl bir görünüme kavuşuyor.



Formun üzerinde fare ile dolaştığımızda mouse olayları, tamam diyim bilgilendirmeyi kapattığımızda ise bu mesajı gösteren olayı görürüz.

Umarım yararlı olabilmiştir.


Turhal Temizer

info@turhaltemizer.com
http://turhal.blogspot.com 
Yazar Hakkında Yorum Yok Yorum Yaz Yazara ait diğer Makaleler
Tema
Anket
Visual Studio 2010 Beta 2'yi denediniz mi?


En Çok Okunan Makaleler
En Son Eklenen Makaleler
Soru Merkezinde Bekleyenler
Ana Sayfa | Hakkımızda | Editörler | Yazarlar | RSS RSS | İletişim
Yazılım Günlüğü 2007-2009 © Tüm Hakları Saklıdır.