Silverlight 5 Beta新特性[2] 鼠标多重点击实现
2011-04-19 15:43
369 查看
本篇继续带来Silverlight 5 Beta版本中新特性.提到鼠标点击实现.印象最深的是在Silverlight 3版本中实现右键点击菜单.但当时在Silverlight 3中对鼠标右键点击事件没有提供支持.在SilverlightL 3版本里通过JavaScriptBridge实现,后来在Silverlight 4版本添加入两个右键点击事件MouseRightButtonDown/MouseRightButtonUp和一个滚轮事件MouseWheel加以支持.MenuItem右键菜单实现代价大大降低. 同样Silverlight 5 Beta版本中对鼠标的多重点击做了进一步加强.
在官方团队Blog看到关于添加鼠标多重点击一段Comment[翻译后]:
对于Silverlight 5实现多重点击的计数.这个实现过程我们常常要考虑点击动作时序问题.确保一个单位时间内两次单击不会被一次双击所取代.而ClickCount点击次数则完全解决这个问题.
如下在Silverlight 5 Beta中实现鼠标多重点击 .首先定义View页面:
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
当鼠标快速在单位时间内做了多次点击时把点击次数显示页面上 后台控制:
[/code]
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
把鼠标点击的结果输出的OutPut窗口 并在页面显示鼠标点击次数 运行效果:
单位实现时间多次点击 效果:
可见如上Silverlight 5 Beta以在MouseButtonEventArgs类添加一个ClickCount属性的代价来解决了鼠标多重点击问题出现.还是显得很实用.如上就是关于Silverlight 5 Beta中鼠标多次点击实现.如有疑问请在留言中提出.提供源码下载如下:
Double and Even Triple Click SouceCode DownLoad:/Files/chenkai/FuturesDoubleEvenClick_Demo.rar
在官方团队Blog看到关于添加鼠标多重点击一段Comment[翻译后]:
对于许多人来说,特别是老人,在同一个地点点击两次之间无需移动鼠标其实是相当具有挑战性.然而双击[三击,甚至多重点击在一些专门的3D和音乐节目应用中也是一个有必要加强的功能.
而Silverlight 5解决这个问题在点击事件引入一个ClickCount点击次数属性. 而不是针对双击/三击/多种点击单独建立对应Event事件来进行处理.而是通过MouseButtonEventArgs类的ClickCount属性简单直观获得鼠标左键或右键点击的次数. 而这个点击次数ClickCount是在系统设置鼠标双击速度触发事件单位时间内点击动作的计数.对于Silverlight 5实现多重点击的计数.这个实现过程我们常常要考虑点击动作时序问题.确保一个单位时间内两次单击不会被一次双击所取代.而ClickCount点击次数则完全解决这个问题.
如下在Silverlight 5 Beta中实现鼠标多重点击 .首先定义View页面:
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
当鼠标快速在单位时间内做了多次点击时把点击次数显示页面上 后台控制:
private void Rectangle_TestCK_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
[code] {
System.Diagnostics.Debug.WriteLine("MouseLeft Click Counter:"+e.ClickCount.ToString());
if (e.ClickCount == 1)//Single Click
this.Counter_TB.Text = "Left Mouse Click Counter:" + e.ClickCount.ToString();
else if (e.ClickCount == 2)//Double Click
this.Counter_TB.Text = "Left Mouse Double Click:" + e.ClickCount.ToString();
else //More Click
this.Counter_TB.Text = "Left Mouse Click Counter:" + e.ClickCount.ToString();
}
[/code]
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
把鼠标点击的结果输出的OutPut窗口 并在页面显示鼠标点击次数 运行效果:
单位实现时间多次点击 效果:
可见如上Silverlight 5 Beta以在MouseButtonEventArgs类添加一个ClickCount属性的代价来解决了鼠标多重点击问题出现.还是显得很实用.如上就是关于Silverlight 5 Beta中鼠标多次点击实现.如有疑问请在留言中提出.提供源码下载如下:
Double and Even Triple Click SouceCode DownLoad:/Files/chenkai/FuturesDoubleEvenClick_Demo.rar
相关文章推荐
- Silverlight 5 Beta新特性[2] 鼠标多重点击实现
- Silverlight 5 beta新特性探索系列:4.Silverlight 5 beta中鼠标双击/鼠标多重点击的实现
- Silverlight 5 beta新特性探索系列:4.Silverlight 5 beta中鼠标双击/鼠标多重点击的实现
- ArcGIS API for Silverlight开发中鼠标左键点击地图上的点弹出窗口及右键点击弹出快捷菜单的实现代码
- JS实现响应鼠标点击动画渐变弹出层效果代码
- jquery实现导航栏鼠标点击后实行背景高亮,点击离开恢复(超级简单!!!!),jquery导航栏
- Silverlight 4 Beta开发版新特性介绍
- MATLAB实现控制鼠标移动和点击
- Unity3d 对Gameobject实现鼠标右键点击
- Extjs4.2如何实现鼠标点击统计图时弹出窗口来展示统计的具体列表信息
- 【转】Silverlight 3 Beta 新特性解析(7)- Child Window和Shader Effect篇
- 点击鼠标右键..想实现图片保存和文字的复制
- Unity3D 2D游戏鼠标点击选中对象如何实现
- java 利用Jframe实现查找鼠标点击的位置坐标
- Silverlight不响应鼠标实现拖动效果
- 稳扎稳打Silverlight(32) - 2.0Tip/Trick之MessageBox, Popup, 循环的几种实现方法, 动态变换主题, 本地化(多语言), 响应鼠标双击事件
- 微软发布Silverlight 5 Beta新特性
- Silverlight 3 Beta 新特性解析(5) - Data篇
- Python实现windows下模拟按键和鼠标点击的方法
- 01-鼠标点击空白处实现层隐藏