2011年6月11日 星期六

Silverlight 4 ListBox Gesture 手勢捲動功能

由於最近我們公司,配合下半年度平板電腦的火熱上市,整個將透過Silverlight開發的產品或功能都一律加上Gesture的支援。這讓Silverlight所開發出來的App,跑在目前坊間的Win7平板上所呈現出的效果比起iPad或Android上的App一點都不遜色且有過之而無不及。

然而Silverlight 4不像WP7那麼好命,每一個ListBox或具有卷軸的控制項(例如ScrollViewer)都內建支援Gesture的功能,因此即便跑在平板電腦上,ListBox都需要用卷軸拖曳的方式來捲動,但明明Silverlight就支援Gesture,不能用手勢捲動ListItem似乎有些遜色。

因此我在網路上找到了這組好用的Behavoir...
http://lighttouch.codeplex.com/

下載之後,在你的專案中引用底下幾個.dll即可。
Wintellect.Touch.dll
System.Windows.Interactivity.dll
System.Windows.Input.Manipulations.dll

如果你想要將ListBox加上Gesture功能,只需要把ListBoxTouchScrollBehavior拖曳到ListBox上:

接著,幫ListBox設計一個ItemPanel,例如(關鍵在GestureListener),完成後大致如下:
最後,幫ListBox的設計一個包含GestureListener Behavior的ItemTemplate即可:


你可以從底下這邊看到預覽的效果:
blog.studyhost.com/BlogData/20110611/SilverlightApplication9TestPage.html
 
你會發現,如果你有支援Multi-Touch的顯示器或是Win7平板電腦,整個手勢拖曳的動作非常順暢,即便你沒有多點觸控設備,這個.dll也支援用滑鼠模擬Gesture,算是挺不錯的設計。

完整的範例程式碼可參考這裡


分享

沒有留言: