微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight 5 beta新特性探索系列:4.Silverlight 5 beta中鼠标双击/鼠标多重点击的实现

        在Silverlight 5中新增了鼠标双击和多重点击的实现,当然在这里包括鼠标左键和鼠标右键的双击,多重点击。在Silverlight 5的MouseButtonEventArgs类中新增了一个属性名为ClickCount:获取到触发事件源在单位时间内被点击的次数(注意:单位时间是由操作系统的"控制面板"-->"鼠标"-->"双击速度"设置的)。

        下面我们来看一个实例以判断是否双击还是多重点击,首先我们看实例的XAML代码

 
 
  1. <Grid x:Name="LayoutRoot" Background="White"
  2. <Ellipse Height="103" HorizontalAlignment="Left" Fill="Green" Margin="117,56,0" 
  3. Name="ellipse1" stroke="Black" strokeThickness="1" VerticalAlignment="Top" 
  4. Width="158" MouseLeftButtonDown="ellipse1_MouseLeftButtonDown" 
  5. MouseRightButtonDown="ellipse2_MouseRightButtonDown" /> 
  6. </Grid> 

        一、我们来看鼠标左键的双击(三重点击类似)判断如下:

 
 
  1. private void ellipse1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
  2. //判断鼠标在系统设置的双击间隔时间之内被点击了两次则弹出窗口显示 
  3. if (e.ClickCount == 2) 
  4. MessageBox.Show("鼠标左键点击"+e.ClickCount.ToString()); 

        当双击鼠标左键时得到的效果图如下:

        二、在某一些情况下我们需要判断鼠标右键是否双击或者三击的情况,那么我们敲入以下代码即可:

  
  
private void ellipse2_MouseRightButtonDown( object sender,MouseButtonEventArgs e)
{
// 判断鼠标右键三击
if (e.ClickCount == 3 )
{
MessageBox.Show(
" 鼠标右键单击了 " + e.ClickCount.ToString() + " 次! " );
}
}

        可是我们当运行时发现出现以下图片效果所示,而不能正常的鼠标右键三击:

        微软认弹出了一个鼠标右键菜单,我们需要将这个认的右键菜单禁用了才能够正常的实现鼠标右键多重点击

        A.在加载Xap包的页面SL5DoubleClickTestPage.aspx的<body>元素改为<body  oncontextmenu="window.event.returnValue=false">。

        B.在<object>标签内新增一行<param name="windowless" value="true" />即可禁用认的鼠标右键菜单

        最后得到的鼠标右键三击效果如下图:

        本实例采用VS2010+Silverlight 5 beta编写,如需源码点击  SL5DoubleClick.zip 下载。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐