Silverligh 5 Beta ve DoubleClick

0 dakikada yazıldı

6913 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 :)