zoukankan      html  css  js  c++  java
  • Silverlight 5 Beta新特性[2] 鼠标多重点击实现

    本篇继续带来Silverlight 5 Beta版本中新特性.提到鼠标点击实现.印象最深的是在Silverlight 3版本中实现右键点击菜单.但当时在Silverlight 3中对鼠标右键点击事件没有提供支持.在SilverlightL 3版本里通过JavaScriptBridge实现,后来在Silverlight 4版本添加入两个右键点击事件MouseRightButtonDown/MouseRightButtonUp和一个滚轮事件MouseWheel加以支持.MenuItem右键菜单实现代价大大降低. 同样Silverlight 5 Beta版本中对鼠标的多重点击做了进一步加强.

    在官方团队Blog看到关于添加鼠标多重点击一段Comment[翻译后]:

    对于许多人来说,特别是老人,在同一个地点点击两次之间无需移动鼠标其实是相当具有挑战性.然而双击[三击,甚至多重点击在一些专门的3D和音乐节目应用中也是一个有必要加强的功能.

    而Silverlight 5解决这个问题在点击事件引入一个ClickCount点击次数属性. 而不是针对双击/三击/多种点击单独建立对应Event事件来进行处理.而是通过MouseButtonEventArgs类的ClickCount属性简单直观获得鼠标左键或右键点击的次数. 而这个点击次数ClickCount是在系统设置鼠标双击速度触发事件单位时间内点击动作的计数.

    对于Silverlight 5实现多重点击的计数.这个实现过程我们常常要考虑点击动作时序问题.确保一个单位时间内两次单击不会被一次双击所取代.而ClickCount点击次数则完全解决这个问题.

    如下在Silverlight 5 Beta中实现鼠标多重点击 .首先定义View页面:

    2011-04-19_152643

     

     

     

     

     

    当鼠标快速在单位时间内做了多次点击时把点击次数显示页面上 后台控制:

       1:   private void Rectangle_TestCK_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
       2:    {
       3:         System.Diagnostics.Debug.WriteLine("MouseLeft Click Counter:"+e.ClickCount.ToString());
       4:         if (e.ClickCount == 1)//Single Click
       5:              this.Counter_TB.Text = "Left Mouse Click Counter:" + e.ClickCount.ToString();
       6:         else if (e.ClickCount == 2)//Double Click
       7:              this.Counter_TB.Text = "Left Mouse Double Click:" + e.ClickCount.ToString();
       8:         else //More Click
       9:              this.Counter_TB.Text = "Left Mouse Click Counter:" + e.ClickCount.ToString();     
      10:     }

    把鼠标点击的结果输出的OutPut窗口 并在页面显示鼠标点击次数  运行效果:

    2011-04-19_153353

    单位实现时间多次点击 效果:

    2011-04-19_153628

    可见如上Silverlight 5 Beta以在MouseButtonEventArgs类添加一个ClickCount属性的代价来解决了鼠标多重点击问题出现.还是显得很实用.如上就是关于Silverlight 5 Beta中鼠标多次点击实现.如有疑问请在留言中提出.提供源码下载如下:

    Double and Even Triple Click SouceCode DownLoad:/Files/chenkai/FuturesDoubleEvenClick_Demo.rar

  • 相关阅读:
    nginx article
    学习历程
    GRPC
    学习记录
    JAVA知识点记录
    flag
    读的文章
    This usually happens because your environment has changed since running `npm install`.
    expandedRowKeys、expandedRowsChange、expand
    服务端高并发分布式架构演进之路
  • 原文地址:https://www.cnblogs.com/chenkai/p/2021005.html
Copyright © 2011-2022 走看看