• Silverlight 鼠标双击 事件


    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>
    View Code

    后台代码

    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
        }
    }
    View Code

    实现双击的接口代码

    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);
        }
    }
    View Code

    实现双击的代码

    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 < 40 || firstClick == false)
                {
                    firstClick = true;
                    lastClick = DateTime.Now;
                }
                else
                {
                    this._mouseDbClick.onMouseDbClick(sender, e);
                    firstClick = false;
                }
            }
    
        }
    }
    View Code

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

  • 相关阅读:
    [转]为什么匿名内部类参数必须为final类型
    [转]软件开发规范—模块开发卷宗(GB8567——88)
    [转]概要设计与详细设计的区别
    [转]解析UML建模语言中的UML图分类、 UML各种图形及作用
    python mysql插入中文乱码
    pycharm mysql数据源配置、SQL方言配置
    pycharm批量查找替换,正则匹配
    python第三方库安装
    什么是Vagrant
    python读写excel文件
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/4021619.html
Copyright © 2020-2023  润新知