Silverlight 双击事件例子

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

后台代码

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Windows;
  6. using System.Windows.Controls;
  7. using System.Windows.Documents;
  8. using System.Windows.Input;
  9. using System.Windows.Media;
  10. using System.Windows.Media.Animation;
  11. using System.Windows.Shapes;
  12.  
  13. namespace MouseDbClick
  14. {
  15. public partial class MainPage : UserControl,IMouseDbClick
  16. {
  17.  
  18. MouseDbClickHander hander = null;
  19.  
  20. public MainPage()
  21. {
  22. InitializeComponent();
  23. hander = new MouseDbClickHander(this);
  24. lbTest.MouseLeftButtonDown += new MouseButtonEventHandler(lbTest_MouseLeftButtonDown);
  25. lbTest.MouseLeftButtonUp += new MouseButtonEventHandler(lbTest_MouseLeftButtonUp);
  26. string[] str = {"a","b","c","d" };
  27. lbTest.ItemsSource = str;
  28. }
  29.  
  30. void lbTest_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
  31. {
  32. hander.OnMouseLeftButtonUp(sender, e);
  33. }
  34.  
  35. void lbTest_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  36. {
  37. hander.OnMouseLeftButtonDown(sender, e);
  38. }
  39.  
  40. #region IMouseDbClick 成员
  41.  
  42. public void onMouseDbClick(object sender, MouseButtonEventArgs e)
  43. {
  44. string msg = lbTest.SelectedItem as string;
  45. MessageBox.Show(msg);
  46. }
  47.  
  48. #endregion
  49. }
  50. }

实现双击的接口代码

  1. using System;
  2. using System.Net;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. using System.Windows.Documents;
  6. using System.Windows.Ink;
  7. using System.Windows.Input;
  8. using System.Windows.Media;
  9. using System.Windows.Media.Animation;
  10. using System.Windows.Shapes;
  11.  
  12. namespace MouseDbClick
  13. {
  14. public interface IMouseDbClick
  15. {
  16. void onMouseDbClick(object sender, MouseButtonEventArgs e);
  17. }
  18. }

实现双击的代码

  1. using System;
  2. using System.Net;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. using System.Windows.Documents;
  6. using System.Windows.Ink;
  7. using System.Windows.Input;
  8. using System.Windows.Media;
  9. using System.Windows.Media.Animation;
  10. using System.Windows.Shapes;
  11.  
  12. namespace MouseDbClick
  13. {
  14. public class MouseDbClickHander
  15. {
  16.  
  17. public DateTime lastClick = DateTime.Now;
  18. private bool firstClick = false;
  19. private IMouseDbClick _mouseDbClick;
  20.  
  21. // Methods
  22. public MouseDbClickHander(IMouseDbClick mouseDbclick)
  23. {
  24. this._mouseDbClick = mouseDbclick;
  25. }
  26. public void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  27. {
  28.  
  29. }
  30. public void OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
  31. {
  32. //UIElement ui = sender as UIElement;
  33. TimeSpan span = DateTime.Now - lastClick;
  34. if (span.TotalMilliseconds < || firstClick == false)
  35. {
  36. firstClick = true;
  37. lastClick = DateTime.Now;
  38. }
  39. else
  40. {
  41. this._mouseDbClick.onMouseDbClick(sender, e);
  42. firstClick = false;
  43. }
  44. }
  45.  
  46. }
  47. }

到了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. poj3420 Quad Tiling

    传送门 题目大意 问讲一个大小为4*n的棋盘用无数1*2的骨牌不重叠覆盖有多少种方案. 分析 我们考虑可以将长为n的棋盘分为两块,一个大小为n-i,另一个大小为i,而为了避免对于不同的i构造出相同的情 ...

  2. Luogu 3759 [TJOI2017]不勤劳的图书管理员

    再也不作死写FhqTreap作内层树了,卡的不如暴力呜呜呜…… 题意翻译:给一个序列,每个下标包含两个属性$a$和$v$,求第一个属性与下标形成的所有逆序对的第二个属性和,给出$m$个交换两个下标的操 ...

  3. vue 之 计算属性和侦听器

    计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div> {{ message.split('').rever ...

  4. STL源码剖析--迭代器(转)

    一.为什么需要traits编程技术 前面说了很多关于traits的光荣事迹,但是却一直没有介绍traits究竟是个什么东西,究竟是用来干什么的?traits在英文解释中就是特性,下面将会引入trait ...

  5. ListBox 光标如何定位在最后一行 显示

    richTextBox_show.SelectionStart = richTextBox_show.Text.Length - 1; richTextBox_show.Focus();

  6. Oracle 系统表大全

    数据字典dict总是属于Oracle用户sys的. 1.用户: select username from dba_users; 改口令 alter user spgroup identified by ...

  7. 原来腾讯安全中心TP和虚拟机vmware10是有冲突的

    用VMware 10启动linux,总是出现VMware Workstation 不可恢复错误: (vmx)...   然后网上查了好多类似问题始终不能解决.后来发现每次出现这个问题腾讯的TP是启动的 ...

  8. 使用canvas压缩图片 并上传

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. Django之博客系统:自定义模板标签

    Django提供了很多内置的模板标签比如{% if %}或者{% block %}Django也允许你创建自己的模板标签(template tags)来执行自定义的动作.当你需要在你的模板中添加功能而 ...

  10. ubuntu - 14.04,如何操作Gnome的任务栏?

    搜索到的答案: in gnome classic you must press both the Alt & Super keys at the same time while right-c ...