[索引页]
[源码下载]


稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件


作者:webabcd


介绍
Silverlight 2.0 人机交互:响应用户的鼠标操作和键盘操作
    MouseEnter - 鼠标进入时触发的事件(显然,此事件不能冒泡)
    MouseLeave - 鼠标离开时触发的事件(显然,此事件不能冒泡)
    MouseLeftButtonDown - 鼠标左键单击按下时触发的事件
    MouseLeftButtonUp - 鼠标左键单击按下并放开时触发的事件
    MouseMove - 鼠标移动时触发的事件
    MouseEventArgs.GetPosition() - 鼠标相对于指定元素的坐标
    MouseButtonEventArgs.Handled - 此事件是否已被处理
    KeyDown - 鼠标按下时触发的事件
    KeyUp - 鼠标按下并放开时触发的事件
    KeyEventArgs.Key - 与事件相关的键盘的按键 [System.Windows.Input.Key枚举]
    KeyEventArgs.Handled - 是否处理过此事件
    System.Windows.Input.Keyboard.Modifiers - 当前按下的辅助键 [System.Windows.Input.ModifierKeys枚举]


在线DEMO
http://www.cnblogs.com/webabcd/archive/2008/10/09/1307486.html


示例
1、Mouse.xaml
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件<UserControl x:Class="Silverlight20.Interactive.Mouse"
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml">
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    
<!--路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件-->
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    
<!--
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    MouseLeftButtonDown, MouseLeftButtonUp和MouseMove均为向上冒泡的路由事件
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    本例的事件路由为:Ellipse -> StackPanel -> UserControl 或 Rectangle -> Canvas -> StackPanel -> UserControl
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    如果不想向上冒泡,则可以使用 MouseButtonEventArgs.Handled = true 告知事件已被处理
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    
-->
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    
<StackPanel HorizontalAlignment="Left" MouseLeftButtonDown="StackPanel_MouseLeftButtonDown" >
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        
<!--
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        MouseEnter - 鼠标进入时触发的事件(显然,此事件不能冒泡)
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        MouseLeave - 鼠标离开时触发的事件(显然,此事件不能冒泡)
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        MouseLeftButtonDown - 鼠标左键单击按下时触发的事件
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        MouseLeftButtonUp - 鼠标左键单击按下并放开时触发的事件
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        MouseMove - 鼠标移动时触发的事件
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        
-->
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        
<Ellipse x:Name="ellipse" Width="200" Height="100" Fill="Red" Margin="5" 
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件            MouseEnter
="ellipse_MouseEnter" 
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件            MouseLeave
="ellipse_MouseLeave"
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件            MouseLeftButtonDown
="ellipse_MouseLeftButtonDown"
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件            MouseLeftButtonUp
="ellipse_MouseLeftButtonUp"
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        
>
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        
</Ellipse>
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        
<Canvas Margin="5">
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件            
<!--用于演示拖放的矩形-->
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件            
<Rectangle x:Name="rectangle" Fill="Blue" Width="50" Height="50"
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件                MouseLeftButtonDown
="rectangle_MouseLeftButtonDown"
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件                MouseLeftButtonUp
="rectangle_MouseLeftButtonUp"
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件                MouseMove
="rectangle_MouseMove"
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件            
/>
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件            
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        
</Canvas>
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    
</StackPanel>
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
</UserControl>
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件

Mouse.xaml.cs
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件using System;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Collections.Generic;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Linq;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Net;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows.Controls;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows.Documents;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows.Input;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows.Media;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows.Media.Animation;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows.Shapes;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
namespace Silverlight20.Interactive


2、Keyboard.xaml
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件<!--
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件KeyDown - 鼠标按下时触发的事件
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件KeyUp - 鼠标按下并放开时触发的事件
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
-->
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
<!--
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件KeyDown和KeyUp均为向上冒泡的路由事件,本例的事件路由为:TextBox -> Canvas -> UserControl
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
-->
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
<UserControl x:Class="Silverlight20.Interactive.Keyboard"
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml" 
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    x:Name
="userControl"
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    KeyDown
="userControl_KeyDown">
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    
<Canvas>
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件            
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        
<TextBox x:Name="textBox" Text="TextBox" />
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件        
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    
</Canvas>
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件    
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
</UserControl>
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件

Keyboard.xaml.cs
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件using System;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Collections.Generic;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Linq;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Net;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows.Controls;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows.Documents;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows.Input;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows.Media;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows.Media.Animation;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
using System.Windows.Shapes;
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
namespace Silverlight20.Interactive


OK
[源码下载]

相关文章: