Silverlight 双击事件例子

<UserControl x:Class="MouseDbClick.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400"> <Grid x:Name="LayoutRoot" Background="White">
<ListBox Height="100" HorizontalAlignment="Left" Margin="12,12,0,0" Name="lbTest" VerticalAlignment="Top" Width="120" />
</Grid>
</UserControl>

后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes; namespace MouseDbClick
{
public partial class MainPage : UserControl,IMouseDbClick
{ MouseDbClickHander hander = null; public MainPage()
{
InitializeComponent();
hander = new MouseDbClickHander(this);
lbTest.MouseLeftButtonDown += new MouseButtonEventHandler(lbTest_MouseLeftButtonDown);
lbTest.MouseLeftButtonUp += new MouseButtonEventHandler(lbTest_MouseLeftButtonUp);
string[] str = {"a","b","c","d" };
lbTest.ItemsSource = str;
} void lbTest_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
hander.OnMouseLeftButtonUp(sender, e);
} void lbTest_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
hander.OnMouseLeftButtonDown(sender, e);
} #region IMouseDbClick 成员 public void onMouseDbClick(object sender, MouseButtonEventArgs e)
{
string msg = lbTest.SelectedItem as string;
MessageBox.Show(msg);
} #endregion
}
}

实现双击的接口代码

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes; namespace MouseDbClick
{
public interface IMouseDbClick
{
void onMouseDbClick(object sender, MouseButtonEventArgs e);
}
}

实现双击的代码

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes; namespace MouseDbClick
{
public class MouseDbClickHander
{ public DateTime lastClick = DateTime.Now;
private bool firstClick = false;
private IMouseDbClick _mouseDbClick; // Methods
public MouseDbClickHander(IMouseDbClick mouseDbclick)
{
this._mouseDbClick = mouseDbclick;
}
public void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{ }
public void OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
//UIElement ui = sender as UIElement;
TimeSpan span = DateTime.Now - lastClick;
if (span.TotalMilliseconds < || firstClick == false)
{
firstClick = true;
lastClick = DateTime.Now;
}
else
{
this._mouseDbClick.onMouseDbClick(sender, e);
firstClick = false;
}
} }
}

到了Silverlight5.0后鼠标事件中有一个ClickCount属性,可以判断是否是双击。

Silverlight 鼠标双击 事件的更多相关文章

  1. IE和Chrome执行javascript对鼠标双击事件的不同响应

    最近在用天地图API帮同学做点开发的工作,主要是基于天地图的API实现违法用地举报的在线地图标绘,要实现的效果如下: 由于是基于天地图API的TPolygonTool工具实现面积量测和多边形绘制功能, ...

  2. EasyUI使用之鼠标双击事件

    easyui鼠标双击事件,使用 onDblClickRow(index, row) 事件,在用户双击一行的时候触发,参数包括: index:点击的行的索引值,该索引值从0开始. row:对应于点击行的 ...

  3. 【原创】有关Silverlight DataGrid双击事件的分析 完整分析 代码与示例

    公司项目用的silverlight,而且silverlight一些技术 资料比较少.所以分享出来 给大家参考参考. 有关Silverlight中DataGrid 双击事件 的代码 如下: 1. 前台x ...

  4. WPF 之 鼠标双击事件

    由于WPF中没有鼠标的双击事件,因而只能通过MouseDown事件来模拟.当连续的两次MouseDown事件的时间间隔,没有超过一个设定的时间阈值时,就计算为一个双击事件,并作相应的处理. 利用WPF ...

  5. MFC鼠标单击截获鼠标双击事件,且无法记录单击的数据的解决方案

    遇到的问题: 鼠标点击会截断鼠标双击的事件,无法保存椭圆的数据.也就是说双击执行的过程是OnLButtonDown,OnLButtonUp,OnLButtonDblClk,OnLButtonUp.并不 ...

  6. java列表组件鼠标双击事件的实现

    Swing中提供两种列表组件,分别是列表框(JList)和组合框(JComboBox). 一.JList组件 构造方法: public JList():构造一个空的.具有只读模型的JList.publ ...

  7. Unity 如何检测鼠标双击事件

    代码如下: void OnGUI(){ Event e=Event.current; )) Debug.Log("用户双击了鼠标"); }

  8. javascript模拟鼠标双击事件

    通常我们在做开发的时候需要通过单击切换对立事件,简单做了一个模型. <!DOCTYPE html> <html> <head> <title>javas ...

  9. winform listbox增加鼠标双击事件

    在Form.Designer.cs文件中对于listBox处理: listBox.MouseDoubleClick += new system.Windows.Forms.MouseEventHand ...

随机推荐

  1. python3-list列表增删改查合并排序

    # Auther: Aaron Fan names = ["aaron", "alex", "james", "meihengfa ...

  2. Entity Framework Tutorial Basics(32):Enum Support

    Enum in Entity Framework: You can now have an Enum in Entity Framework 5.0 onwards. EF 5 should targ ...

  3. 学会使用postman工具模拟请求-----待补充

    登录: backstop 密码:backstop的密码 记得加上header,在swagger中有content-type. 请求,则是api下对应的请求. get请求直接加入链接即可. post请求 ...

  4. form的提交方式

    1,最普通最常用的方法就是用submit type.. <form name=”form” method=”post” action=”#"> <input type=”s ...

  5. 20169219《Linux内核原理与分析》第八周作业

    网易云课堂学习 task_struct数据结构 struct task_struct { volatile long state;进程状态 void *stack; 堆栈 pid_t pid; 进程标 ...

  6. [转]CMD命令提示符窗口中的快捷键、小技巧和常用命令

    转至:https://wenku.baidu.com/view/d5d2b7ca360cba1aa811dac6.html 快捷键:  F1:按F1一次,命令提示符向后切换到已经执行过的命令字符.如果 ...

  7. .NET 实体转换辅助类

    /// <summary> /// 实体转换辅助类 /// </summary> public class ModelConvertHelper<T> where ...

  8. JavaWeb中MVC的使用--以管理系统举例

    开发环境:JavaSE1.7.JavaEE7.0.JSTL1.2.2.Web2.3.MySQL5.5.28 系统分析与功能设计: 本系统实现商品信息的管理,应包括以下几个功能: 商品信息列表:列出所有 ...

  9. P2723 丑数 Humble Numbers

    题意:给你k个质数,定义丑数集合为k个质数随机(1--k)个相乘得到的数 求第n小的丑数 暴力...貌似不太可行,(把所有大量丑数求出来,sort   QAQ) 可以想到,对于第i个丑数f[i],它一 ...

  10. angularJs实现修改功能

    思路: 对表单中内容进行修改,首先需要获取这个内容,再进行修改,再清空弹窗中的内容 //查询实体 $scope.findOne=function(id){ $http.get('../brand/fi ...