標籤:des style blog http color io os ar for
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
Silverlight 滑鼠雙擊 事件