- Katılım
- 3 Şubat 2014
- Mesajlar
- 1,744
- Tepkime puanı
- 0
- Puanları
- 0
Event driven programlada eventlerle bol bol haşır neşir oluruz. Uygulama geliştirirken Click, MouseDown, TextChanged gibi eventleri dinleyip, eventler oluştuğunda yapılması gereken eylemleri koda dökeriz. Bu makalemizde bütün wpf uygulamaların başlangıç noktası olan Application sınıfının Startup, Activated, Deactivated, Exit, DispatcherUnhandledException, SessionEnding eventlerini incelemeye çalışacağız. |
Xaml |
Startup |
Application Run() metodundan sonra ve Application Run() içine parametre geçilen window ekran üzerinde görünmeden önce bu event tetiklenir. Bu event içinde, App.Xaml'ın StartupUri propertisini set etmek yerine uygulamanın ana windowunu oluşturup gösterebiliriz. |
Activated |
Applicationdaki windowlardan bir tanesi aktif olduğu zaman ve başka bir uygulamadan bu uygulamaya geçiş yapıldığı zaman bu event tetiklenir. Bu event ayrıca ilk defa window gösterildiği zamanda da Startup eventinden sonra tetiklenir. |
Deactivated |
Applicationdaki windowlardan bir tanesi aktif olmadığı zaman veya kapatıldığı zaman ya da application'dan başka bir uygulamaya geçiş yapıldığı zaman bu event tetiklenir. |
|
SessionEnding |
Windows kapatılcağı ya da windowsta log off yapılacağı zaman eğer uygulama çalışıyorsa bu evente düşer. Windows'un kapatılmasını SessionEndingCancelEventArgs'ın Cancel propertisi ile engelleyebiliriz. Eğer bu property'i true olarak set etmezsek, Application.ShutDown() fonksiyonu çağrılır ve uygulama kapatılır. |
Exit |
Application Run() metonundan dönülmeden önce, uygulama herhangi bir şekilde kapandığı ya da kapatıldığı zaman bu event çalışır. ExitEventArgs parametresinde bulunan ApplicationExitCode propertisine değer vererek Run metodunun döndürdüğü int değerini değiştirebiliriz. Bu parametresinin default değeri 0'dır. |
DispatcherUnhandledException |
Uygulama içinde (ana thread) ele almadığımız istisnai bir durum oluştuğu zaman istasnai durumun ele alınmasını sağlayan event'tir. Uygulama içinde herhangi bir istisnai durum oluştuğunda istisnai durum, eğer bu event ele alınmışsa buraya düşer. Uygulamayı geliştiren kişi de, gelen istisnai duruma göre çeşitli aktiviteler gerçekleştirebilir. Mesela önemli diye düşündüğü hataları loglayabilir. DispatcherUnhabdledException eventinde, DispatcherUnhandledExceptionEventArgs parametresi gelmektedir. Bu parametrenin Handled adındaki propertisine true değeri verdiğimizde uygulama çalışmaya devam eder. Bu parametrenin varsayılan değeri false'tur ve eğer bu varsayılan değeri değiştirmezsek windows kendi hata ekranını gösterir ve uygulama kapanır. Bu örneğimizde kullanıcı düğmelere bastığında istisnai durum fırlatıyoruz. DispatcherUnhabdledException eventinde ise InvalidCastException istisnai durum haricindeki diğer istisnai durumları ele alıp uygulamanın devam etmesini sağlıyoruz. InvalidCastException istisnai durumunda ise uygulamanın kapatılacağı uyarısını verip uygulamayı kapatıyoruz. |
Cs |