代码改变世界

silverlight, 双击事件

2008-12-01 10:22  闫妍  阅读(158)  评论(0编辑  收藏  举报

 Silverlight 没有提供双击事件,所以需要通过判断两次点击的时间来模拟双击事件

下面的代码,做个参考。



cellBtn.Click 
+= new RoutedEventHandler(cellBtn_Click);
                        
//cellBtn.MouseLeftButtonUp += new MouseButtonEventHandler(cellBtn_MouseLeftButtonUp);
                        
//cellBtn.MouseLeftButtonDown += new MouseButtonEventHandler(cellBtn_MouseLeftButtonUp);
                        
//cellBtn.MouseEnter += new MouseEventHandler(cellBtn_MouseLeftButtonUp);

void cellBtn_MouseLeftButtonUp(object sender, MouseEventArgs e)
        {

            DateTime b 
= DateTime.Now;
            
long c = TimeDiff(b, _timeLastLeftButtonUp);
            _timeLastLeftButtonUp 
= b;
            
if (c < 300)
            {
                HtmlWindow html 
= HtmlPage.Window;
                html.Alert(
"双击");
            }
            
else
            {

            }
        }


        
void cellBtn_Click(object sender, RoutedEventArgs e)
        {
            
//string neDetail = (sender as Button).Content.ToString();

            
//HtmlWindow html = HtmlPage.Window;
            
//html.Alert(neDetail); 

            
        }

        
/// <summary>
        
/// 计算时间差
        
/// </summary>
        
/// <param name="t">时间1</param>
        
/// <param name="t2">时间2</param>
        
/// <returns>返回值:时间差(毫秒为单位)</returns>
        private long TimeDiff(DateTime t, DateTime t2) 
        {
            
long lReturn = -1;
            System.TimeSpan NowValue 
= new TimeSpan(t.Ticks);
            System.TimeSpan TimeValue 
= new TimeSpan(t2.Ticks);
            System.TimeSpan DateDiff 
= TimeSpan.Zero;
            
try
            {
                
//计算时间差
                
//DateDiff = TimeValue.Subtract(NowValue).Duration();
                DateDiff = NowValue.Subtract(TimeValue);
                
int hours = DateDiff.Hours;
                
int minutes = DateDiff.Minutes;
                
int seconds = DateDiff.Seconds;
                
int milliseconds = DateDiff.Milliseconds;

                
string TimeDiff = hours.ToString() + ":"
                    
+ minutes.ToString() + ":"
                    
+ seconds.ToString() + "."
                    
+ milliseconds.ToString();
                
//Program.log.WriteLog("时间差:"+TimeDiff, System.DateTime.Now.ToString(), Orid.Log.LogManagerBase.LogMode.logNormal);
                

                lReturn 
= hours * 3600 * 1000
                    
+ minutes * 60 * 1000
                    
+ seconds * 1000
                    
+ milliseconds;
            }
            
catch (Exception e)
            {
                
throw new Exception(e.Message);
            }
            
return lReturn;
        }

 

转一个地址

http://www.cnblogs.com/wodehuajianrui/archive/2008/10/27/1320189.html