[索引页]
[源码下载]
作者: 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.voidcn.com/article/p-ounmxjds-tq.html
示例
1、Mouse.xaml
[源码下载]
稳扎稳打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.voidcn.com/article/p-ounmxjds-tq.html
示例
1、Mouse.xaml
<UserControl x:Class="Silverlight20.Interactive.Mouse"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!--路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件-->
<!--
MouseLeftButtonDown,MouseLeftButtonUp和MouseMove均为向上冒泡的路由事件
本例的事件路由为:Ellipse -> StackPanel -> UserControl 或 Rectangle -> Canvas -> StackPanel -> UserControl
如果不想向上冒泡,则可以使用 MouseButtonEventArgs.Handled = true 告知事件已被处理
-->
<StackPanel HorizontalAlignment="Left" MouseLeftButtonDown="StackPanel_MouseLeftButtonDown" >
<!--
MouseEnter - 鼠标进入时触发的事件(显然,此事件不能冒泡)
MouseLeave - 鼠标离开时触发的事件(显然,此事件不能冒泡)
MouseLeftButtonDown - 鼠标左键单击按下时触发的事件
MouseLeftButtonUp - 鼠标左键单击按下并放开时触发的事件
MouseMove - 鼠标移动时触发的事件
-->
<Ellipse x:Name="ellipse" Width="200" Height="100" Fill="Red" Margin="5"
MouseEnter="ellipse_MouseEnter"
MouseLeave="ellipse_MouseLeave"
MouseLeftButtonDown="ellipse_MouseLeftButtonDown"
MouseLeftButtonUp="ellipse_MouseLeftButtonUp"
>
</Ellipse>
<Canvas Margin="5">
<!--用于演示拖放的矩形-->
<Rectangle x:Name="rectangle" Fill="Blue" Width="50" Height="50"
MouseLeftButtonDown="rectangle_MouseLeftButtonDown"
MouseLeftButtonUp="rectangle_MouseLeftButtonUp"
MouseMove="rectangle_MouseMove"
/>
</Canvas>
</StackPanel>
</UserControl>
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!--路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件-->
<!--
MouseLeftButtonDown,MouseLeftButtonUp和MouseMove均为向上冒泡的路由事件
本例的事件路由为:Ellipse -> StackPanel -> UserControl 或 Rectangle -> Canvas -> StackPanel -> UserControl
如果不想向上冒泡,则可以使用 MouseButtonEventArgs.Handled = true 告知事件已被处理
-->
<StackPanel HorizontalAlignment="Left" MouseLeftButtonDown="StackPanel_MouseLeftButtonDown" >
<!--
MouseEnter - 鼠标进入时触发的事件(显然,此事件不能冒泡)
MouseLeave - 鼠标离开时触发的事件(显然,此事件不能冒泡)
MouseLeftButtonDown - 鼠标左键单击按下时触发的事件
MouseLeftButtonUp - 鼠标左键单击按下并放开时触发的事件
MouseMove - 鼠标移动时触发的事件
-->
<Ellipse x:Name="ellipse" Width="200" Height="100" Fill="Red" Margin="5"
MouseEnter="ellipse_MouseEnter"
MouseLeave="ellipse_MouseLeave"
MouseLeftButtonDown="ellipse_MouseLeftButtonDown"
MouseLeftButtonUp="ellipse_MouseLeftButtonUp"
>
</Ellipse>
<Canvas Margin="5">
<!--用于演示拖放的矩形-->
<Rectangle x:Name="rectangle" Fill="Blue" Width="50" Height="50"
MouseLeftButtonDown="rectangle_MouseLeftButtonDown"
MouseLeftButtonUp="rectangle_MouseLeftButtonUp"
MouseMove="rectangle_MouseMove"
/>
</Canvas>
</StackPanel>
</UserControl>
Mouse.xaml.cs
2、Keyboard.xaml
<!--
KeyDown - 鼠标按下时触发的事件
KeyUp - 鼠标按下并放开时触发的事件
-->
<!--
KeyDown和KeyUp均为向上冒泡的路由事件,本例的事件路由为:TextBox -> Canvas -> UserControl
-->
<UserControl x:Class="Silverlight20.Interactive.Keyboard"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="userControl"
KeyDown="userControl_KeyDown">
<Canvas>
<TextBox x:Name="textBox" Text="TextBox" />
</Canvas>
</UserControl>
KeyDown - 鼠标按下时触发的事件
KeyUp - 鼠标按下并放开时触发的事件
-->
<!--
KeyDown和KeyUp均为向上冒泡的路由事件,本例的事件路由为:TextBox -> Canvas -> UserControl
-->
<UserControl x:Class="Silverlight20.Interactive.Keyboard"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="userControl"
KeyDown="userControl_KeyDown">
<Canvas>
<TextBox x:Name="textBox" Text="TextBox" />
</Canvas>
</UserControl>
Keyboard.xaml.cs
OK
[源码下载]
[源码下载]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。