WEB开发网
开发学院图形图像Flash 学Silverlight 2系列(4):鼠标事件处理 阅读

学Silverlight 2系列(4):鼠标事件处理

 2008-10-03 11:36:51 来源:WEB开发网   
核心提示: 路由事件 在Silverlight中,提供了事件路由,学Silverlight 2系列(4):鼠标事件处理(4),使得我们可以在父节点上接收和处理来自于子节点的事件,Silverlight中的路由事件采用了冒泡路由策略,包括事件注册、获取事件数据、路由事件等,在下一篇中,在鼠标事件中Mou

路由事件

在Silverlight中,提供了事件路由,使得我们可以在父节点上接收和处理来自于子节点的事件,Silverlight中的路由事件采用了冒泡路由策略。在鼠标事件中MouseLeftButtonDown 、MouseLeftButtonUp 、MouseMove三个事件都支持路由事件,而MouseEnter、MouseLeave两个事件不支持。下面的XAML中我们为Canvas对象声明了一个MouseLeftButtonDown事件:

<Canvas x:Name="ParentCanvas" Background="#46461F"
    MouseLeftButtonDown="ParentCanvas_MouseLeftButtonDown">
  <Rectangle x:Name="RecA" Fill="Orange" Stroke="White" StrokeThickness="2"
        Canvas.Top="40" Canvas.Left="60"
        Width="160" Height="100"/>
  <Rectangle x:Name="RecB" Fill="LightBlue" Stroke="White" StrokeThickness="2"
        Canvas.Top="40" Canvas.Left="240"
        Width="160" Height="100"/>
  <TextBlock x:Name="Status" Foreground="White" Text="Status"
        Canvas.Left="100" Canvas.Top="200"/>
</Canvas>

添加MouseLeftButtonDown事件处理程序,显示当前鼠标按下时的坐标,并显示源控件名称:

private void ParentCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
  String msg = "x:y = " + e.GetPosition(sender as FrameworkElement).ToString();
  msg += " from " + (e.Source as FrameworkElement).Name;
  Status.Text = msg;
}

运行后在RecA上按下鼠标:

学Silverlight 2系列(4):鼠标事件处理

在Canvas上按下鼠标:

学Silverlight 2系列(4):鼠标事件处理

结束语

本文简单介绍了Silverlight 2中关于鼠标事件处理的一些知识,包括事件注册、获取事件数据、路由事件等。在下一篇中,我们将使用这些鼠标事件来实现一个简单的拖放功能。

上一页  1 2 3 4 

Tags:Silverlight 系列 鼠标

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接