Oca302012

Silverlight ile Behavior Maceraları (Designer)

Yusuf Karakaş tarafindan 01:05 tarihinde Silverlight | Silverlight Eğitim Serisi kategorisine eklenmistir.

Bir önceki makalemizde Behaviorlar’a, yazan kısım olarak developer tarafından bakmıştık.Bu makalemizde ise Expression Blend tarafında designer penceresinden bu işlemleri gerçekleştirelim.

 TodayBehavior.cs

image

İlk olarak Assets/Behavior yolunu izleyerek yazmış olduğumuz tam ekran methodunu aşağıdaki gibi nesnelerimizin bulunduğu kısma sürükleyip bırakıyoruz.

image

Daha sonra Behavior seçili iken aşağıdaki özellikleri ayarlıyoruz.Yapılan işten kısaca bahsedersek , Today Behavior’un hangi olay tetiklendiğinde çalışacağı ve gösterileceği nesneyi seçiyoruz.

image

Artık tasarımcı olarak bu methodu istediğim yerde kullanabilirim.Bir önceki makaledeki diğer behaviorların çalışma mantığı da aynı şekilde olduğundan kaynak kodu sizinle paylaşıyorum.

SLBehavior.rar (1,27 mb)



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Etiketler:

E-Posta | Permalink | Geri izlemeler | Yazi RSSRSS comment feed 0 Yorum

Oca172012

Silverlight ile Behavior Maceraları (Developer)

Yusuf Karakaş tarafindan 22:56 tarihinde Silverlight kategorisine eklenmistir.

Silverlight ile proje geliştirmeye başladığınızda sizde göreceksiniz ki esneklik açısından sınır yok!

Tasarım ve Geliştirme kısımlarının ayrı yürütüldüğü projeleri düşünecek olursak Behavior’lar süper önem taşıyor. Örnek verecek olursak her proje de kullanılmak üzere birtakım özel fonksiyonlar(Tarih saat Gösterimi,TamEkran Gösterimi) vardır.Ve her projede bu fonksiyonların  geliştirici tarafından tasarımcıya aktarılması gerekir. Peki bu işlevsel methodları bir Silverlight Class Library de tutup her projeye uygulasak ve tasarımcı sürükle bırak işlemi ile bunları kullansa nasıl olur ?

Örnekler ile anlattıklarımızı destekleyelim Gülümseme

İlk olarak yeni bir Silverlight projesi oluşturup yanına ek olarak birde Silverlight ClassLibrary alalım.

FullScreen.cs

İlk olarak Silverlight projelerinde sıkça kullanacağımız ( SL5 FullScreen modda input girişi desteği geldi) Tam Ekran özelliğine bakalım.Aşğıdaki örnekte FullScreen koduna ek olarak TriggerAction adında bir abstract class ve onun implemente ettiği Invoke methodunu görüyoruz.

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Interactivity;
namespace SLBehaviorLibrary
{
    public class FullScreenBehavior : TriggerAction<UIElement>
    {
        protected override void Invoke(object parameter)
        {
            Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
        }
    }
}


TodayBehavior.cs

Bugünün tarihi hemen hemen her uygulamada gösterilen basit ama kullanışlı bir olaydır.Ve genelde ya bir Label yada TextBlock üzerinde gösteririz.Aşağıdaki örneğimizde hedef olarak TextBlock’u seçip Invoke methodu içinde Target üzerinden gittiğimde Text özelliğine bugünün tarihini atamamla developer olarak işim bitmiş olacak. Designer ise sayfada herhangi bir texblock’a bu behavioru sürükle bırak şeklinde uygulayabilecek.

 public class FullScreenBehavior : TriggerAction<UIElement>
    {
        protected override void Invoke(object parameter)
        {
            Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
        }
    }

 


RandomNumber.cs

Genelde seminerlerde kullandığımız rastgelle sayı üreten bir behavior yazalım.Bu sefer min ve max parametrelerini de belirleyerek tasarımcı arkadaşa sunalım.

namespace SLBehaviorLibrary
{
    public class RandomNumber : TriggerAction<UIElement>
    {
        public int Min { get; set; }
        public int Max { get; set; }
        Random rnd;
        int result;
        protected override void Invoke(object parameter)
        {
            rnd = new Random();
            result = rnd.Next(Min,Max);
            MessageBox.Show(result.ToString());
        }
    }
}


OpenPopup.cs

Son olarak Popup’a ait açma kapama işlemini gerçekleştiren bir behavior yazalım.Böylelikle bilgilendirme olayını da bu şekilde çözmüş olabiliriz Gülümseme Yine Target üzerinden gittiğimizde Popup’a ait özelliklere erişebiliyoruz.

 public class OpenPopup: TargetedTriggerAction<Popup>
    {
        protected override void Invoke(object parameter)
        {
            this.Target.IsOpen=this.Target.IsOpen==true ? this.Target.IsOpen=false : this.Target.IsOpen=true;
        }
    }

Benim developer olarak işim bitti aslında.Artık Designer devreye girerek yukarıdaki behaviorları ister tek tek isterse iç içe kullanabilir.Bu makalede Behaviorlara developer tarafı ile baktık diğer makalede ise Expression Blend'de designer tarafından bakıyor olacağız.

Sağlıcakla Kalın!



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Etiketler: ,

E-Posta | Permalink | Geri izlemeler | Yazi RSSRSS comment feed 0 Yorum

Oca172012

Ineta K12 Web Camp Geldi Geçti…

Yusuf Karakaş tarafindan 20:43 tarihinde Bilişim Haberleri | Silverlight | Ineta K12 kategorisine eklenmistir.

İlk Gün…

Uzun bir süredir Ineta K12 tarafında etkinlik yapamıyorduk.Tabiri yerindeyse bunun acısını çıkarmak adına bir Web Camp gerçekleştirdik.Oldukça keyifli geçen eğitimde ilk gün katılımcılara Silverlight anlattım.Öğleden önce konular üzerinden geçip, dikkat edilmesi gereken yerlerden bahsettim.Halihazırda bulunan projelerden örnekler vererek günün yarısını tamamlamış olduk.

Öğleden sonra uygulamaya geçtiğimizde , kimsenin SL hakkında bir bilgisi olmadığından dolayı biraz zor geçse de sonuç itibari ile gösterilen herşey uygulamalarla desteklenmiş oldu.Gün sonunda gelen geri dönüşler kampın ilk gününün yararlı geçtiğinin en büyük göstergeseydi.(PathListBox ile yapılan bir uygulamada “Yok artık” diye bir ses duymuştum:))

Bu arada söylemeden edemeyeceğim , Meslek liselerindeki müfredat sorunu aslında bir şekilde bize de yansıdı.Farklı okullardan gelen öğrenciler arasında bilinen ortak bir programlama dili bulamadık desem yeridir.Buda haliyle can sıkan bir durum oluyor.

imageimage

İkinci Gün…

Kampın 2. gününde Osman Kurt Asp.net ile devam etti.Asp.net ile sıfırdan bir uygulama geliştirip , dikkat edilmesi gereken noktalardan bahsetti.Saatler öğleni geçtikten sonra,ortaya karışık tadında ilerlemeye başladık Gülümseme Öğrenciler tarafından gelen sektör,teknoloji ve projeler hakkındaki sorulara cevap verdik.Kampın sonlarına doğru interaktif giden eğitimin verdiği samimiyetle birde Windows Phone demosu yapıp günü sonlandırmış olduk.

image

Teşekkür…

Etkinliğin gerçekleşmesinde ve organizasyonda büyük emeği olan Ineta Türkiye Başkanı Muammer Benzeş’e, desteğini esirgemeyen Ineta MEA Başkanı Daron Yöndem’e ve sponsorumuz olup bizi ağırlayan TCM’e teşekkür ederim.



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Etiketler:

E-Posta | Permalink | Geri izlemeler | Yazi RSSRSS comment feed 0 Yorum

Oca122012

Ineta K12 WebCamp

Yusuf Karakaş tarafindan 20:45 tarihinde Bilişim Haberleri kategorisine eklenmistir.

Uzun bir aradan sonra K12 tarafında yeniden bir etkinlik ile dönüş yapıyoruz.Bu sefer seminer dışında etkinliğin  kamp havasında geçeceği için çok daha keyifli vakit geçireceğimize inanıyorum.

14-15 Ocak, TCM(Teknolojik Çözümler Merkezi) sponsorluğunda Meslek liseli arkadaşlarımızla buluşuyoruz.İlk gün Silverlight anlatıyorum.Tüm gün Silverlight anlatmak ve ortaya bir uygulama çıkarmak , etkinliğin amacı açısından süper olacak! İkinci gün ise K12 konuşmacılarımızdan Osman Kurt Asp.net anlatacak. Keyifli  bir haftasonu olacağına eminim Gülümseme

Sağlıcakla Kalın!



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Etiketler:

E-Posta | Permalink | Geri izlemeler | Yazi RSSRSS comment feed 0 Yorum