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());
 }
 }

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


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

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" />即可禁用默认的鼠标右键菜单。

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

时间: 2024-11-02 09:46:23

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

Silverlight 5 beta新特性探索系列:2.在XAML代码中设置断点和Binding绑定调试【附带源码实例】

在Silverlight之前的版本中都不能在XAML代码中设置断点以跟踪调试的,在Silverlight 5 beta版中我们将能够为Binding数据的XAML代码设置断点以跟踪调试相应的数据绑定过程. 首先我们新建一个Silverlight 5应用程序,然后准备后台数据代码如下以绑定一个DataGrid控件. public MainPage() { InitializeComponent(); List<CityInformation> cityList=new List<CityI

Silverlight 5 beta新特性探索系列:8.Silverlight 5中自定义扩展标记

在Silverlight 5中新增了自定义扩展标记,它通过继承于 MarkupExtension 类,重载该类中的ProvideValue方法以判断得到相应的返回值,以设置被绑定控件的属性. 下面我们通过一个最为简单的实例来理解自定义扩展标记是如何工作的. 第一步:新建一个UserMarkExtension.cs类,注意UserMark(扩展标记名)+Extension.cs(固定的后缀)=UserMarkExtension.cs 第二步:设置3个可被访问的属性标签LBText,LBWidth,

Silverlight 5 beta新特性探索系列:6.Silverlight 5新增低延迟声音效果类SoundEffect.支持wav音乐格式【附带源码实例】

在Silverlight 5中新增了一个SoundEffect类和SoundEffectInstance类用以加载wav格式的音乐,这样可以很及时的为动画添加音效. 现在我们看如何使用这两个类来控制播放wav音乐,首先引入mav音乐格式的文件(音频采样大小必须为16或者8位不能是24位,采用PCM编码,22.5, 44.1 or 48khz的采样率)如下图属性: 其次将引入的wav格式音乐文件在项目中右键点击其属性设置其"生成操作"为"内容",如下图所示: 现在我们

Silverlight 5 RC新特性探索系列:14.Silverlight 5 RC 对字体呈现的改进

     在Silverlight 5 RC版本中对字体呈现做出了比较大的优化,它现在新增了一个类TextOptions,其内部有三个依赖属性TextFormattingMode.TextHintingMode.TextRenderingMode.对字体的呈现模式进行了定义.    1.TextFormattingMode         它有两种格式化模式,是对字体的格式化进行设置         1.1 Display:它使用度量来格式化字体和符号,会让字体显示得更加清晰,        

Silverlight 5 RC新特性探索系列:13.Silverlight 5 RC 新增对并行任务库(TPL)的支持

     在Silverlight 5 RC版本中新增了对并行任务库(Task Parallel Library)的支持,Task Parallel Library简称TPL,它是指一个或者多个任务同时运行,类似线程或者线程池.在本例中将会以并行任务库和异步获取数据进行对比.  首先新建一个Silverlight 5项目,在其Web项目中添加一个新的xml文件helloWorld.xml.编写代码如下: <?xml version="1.0" encoding="utf

Silverlight 5 RC新特性探索系列:12.Silverlight 5 RC 窗口模式下访问自定义DLL和WIN32 API

  在Silverlight 5 RC版本中针对访问权限进行了相应的提升,它的项目属性中新增了一个复选框"在浏览器内运行时需要提升的信任",如下图:          它将为在浏览器模式下运行的应用程序提升一些访问权限,例如我的上篇SaveFileDialog保存文件指定默认名称---OpenFileDialog打开文件指定默认路径就需要提升权限.另外在其OOB模式下也进行了相应的提升,比如访问WIN 32 API,或者访问在C:\Windows\System32目录下的自己编写的DL

Silverlight 5 beta新特性探索系列:1.安装Silverlight 5 beta环境以及OOB模式下Silverlight 5 多窗口支持

Silverlight 5 beta版本总算于昨日放出,怀着激动的心情今天将开发环境更新为Silverlight 5 beta版本,并且接触Silverlight 5 beta的第一个新特性:OOB模式下的多窗口的弹出显示. 现在我们开始Silverlight 5 Beta版本的安装,首先需要为VS2010打一个VS2010 SP1补丁,然后我们再下载Silverlight 5 Beta Tools for Visual Studio SP1,一步一步安装完毕,最后我们下载Silverlight

Silverlight 5 beta新特性探索系列:3.Silverlight5中的文字增进控制【附带实例源码】

在Silverlight 5中新增了CharacterSpacing属性对文字间距进行控制,增加了RichTextBoxOverflow控件以灵活的对大量文字进行合理的排版显示. 一.CharacterSpacing属性 在Silverlight原来的版本中文字和文字之间并没有一个间距控制属性,这让某一些特殊的文字显示场合排版不易(比如杂志,电子报),在Silverlight 5中引入的CharacterSpacing属性就可以很好处理文字间距,它可用做TextBlock,RichTextBox

Silverlight 5 beta新特性探索系列:7.结合上层元素属性绑定和Style Setter上的绑定

   在Silverlight 5中添加了相对上层元素属性的绑定,还有Style Setter也可以绑定数据.         一.相对上层元素属性的绑定        它是在元素内部的子孙级元素中的某一些属性可以绑定为祖先级元素的某一些属性.比如说再一个ListBox的Tag元素值为:"这是第一个父级绑定",在ListBox.Templete下面添加一个TextBlock元素的Text属性设置为 <TextBlock Text="{Binding Tag,Relati