Silverligh 5 Beta ve DoubleClick

0 dakikada yazıldı

7000 defa okundu

Düzenle

Yıllardır :) Silverlight'ta DoubleClick neden yok diye bekliyoruz da
bekliyoruz :) Tabi bekliyoruz derken aslında birka satır kodla olay
çözülebiliyor. Hatta bu konuda mini bir
makalem
bile var. Ama malum yani insan gibi bir DoubleClick eventimiz olsaydı
kontroller için olmaz mıydı? Oldu, hem de daha fazlası oldu!

Double, Triple, Quadruple...
n-
tuple :) click!

Hani bir kod yazarken her ihtimali düşünme hikayesi (çukuru) vardır ya?
Tam da o çukurun etrafında gezeceğiz şimdi. DoubleClick beklerken
Silverlight 5 Beta ile beraber öyle bir mekanizma geldi ki artık ister
double, ister Triple istediğiniz click miktarını yakalayabilirsiniz.
Gerekli mi? Tartışmayı size bırakıyorum :) ama gelin bir olayın nasıl
kullanıldığına göz atalım.

[XAML]

    <Grid x:Name="LayoutRoot" Background="White">
        <Rectangle Height="100" HorizontalAlignment="Left" 
                   Margin="134,96,0,0" Name="rectangle1" Stroke="Black" 
                   StrokeThickness="1" VerticalAlignment="Top" Width="200" />
    </Grid>

İlk olarak sahneye basit bir Rectangle alıyoruz. Bu Rectangle'ın
DoubleClick vs durumunu yakalamak için kodumuzda hemen
MouseLeftButtonDown eventine bir listener ekliyoruz.

[C#]

        public MainPage()
        {
            InitializeComponent();
            rectangle1.MouseLeftButtonDown += new MouseButtonEventHandler(rectangle1_MouseLeftButtonDown);     
        }

        void rectangle1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            
        }

"Nasıl yani?" dediğinizi duyar gibiyim. Hani DoubleClick'ti?
MouseLeftButtonDown da nereden çıktı değil mi? Sürprizi sona
saklıyorum :)

** [C#]**

        void rectangle1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if(e.ClickCount == 2)
            {
                MessageBox.Show("Çift tıklandı!");               
            }
        }

Tadaaa! :) "Saçmalığa gel" dediğinizi duyar gibiyim. Bu özelliği
runtime'a bu şekilde eklemeyi kim akıl etti bilemiyorum :) Daha önce
başka bir platformda karşılaşanınız varsa lütfen yorum bıraksın :) Şaka
bir yana saçma olmanın yanı sıra esneklik anlamında da eleştiri
alamayacak bir implementasyon söz konusu :) Ama bilemiyorum, yani
istediğimiz bir DoubleClick eventiydi. "Kör istedi...." :)

Neyse, sonuç itibari ile DoubleClick öyle veya böyle artık Silverlight 5
Beta ile karşımızda. MouseButtonEventArgs üzerinden ClickCount
propertysi ile klik sayısını alarak iki olduğunda istediğimiz işlemi
yapabiliriz. İyi günlere hep beraber kullanalım ;)

Görüşmek üzere.

Not: Bu implementasyon SL5 release olduğunda değişir. Sonra söylemedi
demeyin :)