silverlight鼠标双击
2011-09-27 00:38
239 查看
SilverlightTipoftheDay#82–HowtoImplementDoubleClick
Silverlightcurrentlyhasfullmousesupportforsingleclick.However,doubleclickisaanotherstory.InthistipIwillshowyouhowtoimplementdoubleclick.Youcanapplythistechniqueforanindividualcontrolorevenyourentirepage.ThekeythingtodoistostartaDispatcherTimertimeroncealeftmouseclickeventhasbeenreceived.Ifanothermouseclickisinterceptedbeforethedoubleclicktimeintervalhaspassedthenadoubleclickhasoccurred.
Thisintervalistypicallysettobearound200milliseconds.Once200millisecondshaspassedthetimerisstoppedanddisableduntilanothermouseclickisreceived.
Tostart,let’screateourtimerandaddalistenerforthe
MouseLeftButtonDownevent.
DispatcherTimer_doubleClickTimer;
Image_lastImage=null;
publicPage()
{
InitializeComponent();
_doubleClickTimer=newDispatcherTimer();
_doubleClickTimer.Interval=newTimeSpan(0,0,0,0,200);
_doubleClickTimer.Tick+=newEventHandler(DoubleClick_Timer);
this.MouseLeftButtonDown+=newMouseButtonEventHandler(Page_MouseLeftButtonDown);
}
//toomuchtimehaspassedforittobeadoubleclick.
voidDoubleClick_Timer(objectsender,EventArgse)
{
_doubleClickTimer.Stop();
}
Now,inthePage_MouseLeftButtonDown()methodwe:
Checkifthetimerisenabled.
Ifitisenabledalready,thenwehavealreadyclickedonceandhavemadeadoubleclick.
Ifisitnotenabledstartthetimer.
voidPage_MouseLeftButtonDown(objectsender,MouseButtonEventArgse)
{
if(_doubleClickTimer.IsEnabled)
{
//adoubleclickhasoccured
_doubleClickTimer.Stop();
ImagecatImg=newImage();
Uriuri=newUri("cat.png",UriKind.Relative);
ImageSourceimgSource=new
System.Windows.Media.Imaging.BitmapImage(uri);
catImg.Source=imgSource;
catImg.SetValue(Canvas.LeftProperty,(double)e.GetPosition(LayoutRoot).X-90);
catImg.SetValue(Canvas.TopProperty,(double)e.GetPosition(LayoutRoot).Y-113);
if(null!=_lastImage)
MainCanvas.Children.Remove(_lastImage);
MainCanvas.Children.Add(catImg);
_lastImage=catImg;
}
else
{
_doubleClickTimer.Start();
}
}
相关文章推荐
- Silverlight中创建自己的Behavior(为Silverlight添加鼠标双击和滚轮支持)
- silverlight 自定义 鼠标 双击事件
- Silverlight 5 beta新特性探索系列:4.Silverlight 5 beta中鼠标双击/鼠标多重点击的实现
- Silverlight 5 beta新特性探索系列:4.Silverlight 5 beta中鼠标双击/鼠标多重点击的实现
- 稳扎稳打Silverlight(32) - 2.0Tip/Trick之MessageBox, Popup, 循环的几种实现方法, 动态变换主题, 本地化(多语言), 响应鼠标双击事件
- silverlight鼠标双击1
- Silverlight - 鼠标右键及左键双击事件
- Silverlight实用窍门系列:12.继承于某些固定控件(以Grid为例)的鼠标左键双击事件的实现【附带实例源码】
- Silverlight 4以下版本模拟鼠标双击事件
- Silverlight DataGrid鼠标双击事件
- silverlight鼠标双击2
- Silverlight 鼠标双击 事件
- Silverlight实用窍门系列:11.Silverlight中为自定义控件添加鼠标双击属性,Silverlight模拟鼠标双击【附带源码实例】
- 11.Silverlight中为自定义控件添加鼠标双击属性,Silverlight模拟鼠标双击
- Silverlight 鼠标双击事件处理
- silverlight 自定义 鼠标 双击事件
- 稳扎稳打Silverlight(32) - 2.0Tip/Trick之MessageBox, Popup, 循环的几种实现方法, 动态变换主题, 本地化(多语言), 响应鼠标双击事件
- Silverlight模拟鼠标双击事件
- MVVM Silverlight 5 Datagrid MVVM 鼠标双击事件
- JAVA中的鼠标双击事件收藏(转载)