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

简介:

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

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

复制代码
 
 
< Grid x:Name = " LayoutRoot " Background = " White " >
< Ellipse Height = " 103 " HorizontalAlignment = " Left " Fill = " Green " Margin = " 117,56,0,0 "
Name
= " ellipse1 " Stroke = " Black " StrokeThickness = " 1 " VerticalAlignment = " Top "
Width
= " 158 " MouseLeftButtonDown = " ellipse1_MouseLeftButtonDown "
MouseRightButtonDown
= " ellipse2_MouseRightButtonDown " />
</ Grid >
复制代码
        一、我们来看鼠标左键的双击(三重点击类似)判断如下:
复制代码
 
 
private void ellipse1_MouseLeftButtonDown( object sender, MouseButtonEventArgs e)
{
// 判断鼠标在系统设置的双击间隔时间之内被点击了两次则弹出窗口显示
if (e.ClickCount == 2 )
{
MessageBox.Show(
" 鼠标左键点击 " + e.ClickCount.ToString());
}
}
复制代码

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

2011041911463072.jpg

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

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

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

2011041911464874.jpg

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

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

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

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

2011041911465719.jpg

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


本文转自程兴亮博客园博客,原文链接:http://www.cnblogs.com/chengxingliang/archive/2011/04/19/2020677.html,如需转载请自行联系原作者


相关文章
|
图形学 Windows
Unity调用Windows弹框、提示框(确认与否,中文)
Unity调用Windows弹提示框 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar...
3719 0
|
C# 安全
CefSharp For WPF自定义右键菜单栏
原文:CefSharp For WPF自定义右键菜单栏 初始化 public MainWindow() { InitializeComponent(); //右键菜单栏 MenuHandler.
2324 0
|
C#
WPF中获取鼠标相对于桌面位置
原文:WPF中获取鼠标相对于桌面位置 var transform = PresentationSource.FromVisual(this).CompositionTarget.TransformFromDevice; var mouse = transform.
731 0
|
API C# Windows
WPF 4 开发Windows 7 跳转列表(JumpList)
原文:WPF 4 开发Windows 7 跳转列表(JumpList)      在之前写过的《Windows 7 任务栏开发系列》中我们通过Visual Studio 2008 借助微软提供的Windows API Code Pack 对应用程序的任务栏进行开发,即将到来的Visual Studio 2010 为我们提供了更方便的开发方式,新版本的WPF 4 只需要通过XAML 代码即可实现Windows 7 任务栏的特性。
904 0