sliverlight本身没有提供DoubleClick,如果实现可以在网上找到很多实现发方法,
我试了几个,这边这个算是最简单的,不过对于button这种已经绑定了click触发器总是有问题,
对于其他所有控件都可以正常使用,只要绑定了MouseLeftButtonDown和MouseLeftButtonUp这两个触发器就OK了
实现原理很简单,记录MouseLeftButtonUp和MouseLeftButtonDown的时间戳,计算时间差,只要小于1/10秒就可以,大于0就算双击,就是双击中第一次点击和第二次点击时间差小于1/10秒。
实现代码:
|
public class GraphicsUtils /// /// /// private void target_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) private void target_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) if (currentMillis - lastClickedTime < 100 && currentMillis - lastClickedTime > 0) } #endregion |
使用方法,比如里面有个椭圆,名称是doubleclick,那么绑定方法如下:
| GraphicsUtils.DoubleClickHandler dblClickHandler = new GraphicsUtils.DoubleClickHandler(MyMethodToHandleDoubleClick); GraphicsUtils gu = new GraphicsUtils(); gu.AttachDoubleClick(this.doubleclick, dblClickHandler); |
MyMethodToHandleDoubleClick是双击触发的事件,很简单,就和click事件一样写、
这个可以放在页面初始化时候进行绑定,是一个比较方便简单的方法,
原载与
http://shemesh.wordpress.com/2009/03/05/silverlight-attach-a-double-click-to-any-object/
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22259926/viewspace-629453/ ,如需转载,请注明出处,否则将追究法律责任。