zoukankan      html  css  js  c++  java
  • 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属性,可以判断是否是双击。

  • 相关阅读:
    学习进度表
    201671010144 2016-2017《java程序设计》图形程序设计
    201671010144 2016-2017《java程序设计》我所理解的继承!
    201671010144 2016-2017《java程序设计》 反思。
    201671010144 2016-2017《java程序设计》 前四章总结!
    201671010144 2016-2017 《java程序设计》--对象与类!
    201671010144 2016-2017-2-------《java程序设计》 学习java!
    201671010144 2016-2017-2 《java程序设计》--学习中遇到的问题!
    201671010144 2016-2017-2 《java程序设计》--认识java!
    软件工程实践2017第一次作业-准备
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/4021619.html
Copyright © 2011-2022 走看看