silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight的事件冒泡整理大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

在Silverlight中,提供了事件冒泡,使得我们可以在父节点上接收和处理来自于子节点的事件,Silverlight中的事件采用了冒泡路由策略。在鼠标事件中MouSELEftButtonDown 、MouSELEftButtonUp 、MouseMove三个事件都支持路由事件,而MouseEnter、MouSELEave两个事件不支持。       事件冒泡机制是指子对向沿着对象层次结构向上传递

在Silverlight中,提供了事件冒泡,使得我们可以在父节点上接收和处理来自于子节点的事件,Silverlight中的事件采用了冒泡路由策略。在鼠标事件中MouSELEftButtonDown 、MouSELEftButtonUp 、MouseMove三个事件都支持路由事件,而MouseEnter、MouSELEave两个事件不支持

 

 

  事件冒泡机制是指子对向沿着对象层次结构向上传递事件,比如在一个画布中包含一个矩形,如果为矩形和画布都定义了@H_76_29@mouseMove事件,那么当在矩形上移动鼠标时,矩形会将@H_76_29@mouseMove事件传递到他的父对象,那么父对象也会触发@H_76_29@mouseMove事件。

下面举一个示例

@H_618_56@ @H_675_89@

在该图中有两个矩形,当鼠标在矩形上移动时,可以看到同时也触发了Canvas@H_76_29@mouseMove事件。该示例的XAML代码如下所示。

<Canvas x:Name="parentCanvas"

        xmlns="http://scheR_774_11845@as.microsoft.com/client/2007"

        xmlns:x="http://scheR_774_11845@as.microsoft.com/winfx/2006/xaml"

        Loaded="Page_Loaded"

        x:Class="bubbledeventDemo.Page;assembly=ClientBin/bubbledeventDemo.dll"

        Width="640"

        Height="480"

        @H_615_27@mouseMove="onCanvasMouseMove"

        BACkground="White"

        >

  <!--定义矩形A,并指定移动事件-->

  <Rectangle

      x:Name="RectA"

      @H_615_27@mouseMove="onRectMouseMove"

      Width="100" Height="100" Fill="PowderBlue" />

  <!--定义矩形B,并指定与矩形A相同的移动事件-->

  <Rectangle

    x:Name="RectB"

    @H_615_27@mouseMove="onRectMouseMove"

    Width="100" Height="100" Fill="Gold"

    Canvas.Top="50" Canvas.Left="50" Opacity="0.5" />

  <!--定义当鼠标在矩形上面移动时的文本显示-->

  <TextBlock x:Name="statusTextBlock" Canvas.Top="180" />

  <!--由事件冒泡机制引发画布的@H_537_28@mouSEOver事件所显示的文本-->

  <TextBlock x:Name="canvasBlock" Canvas.Top="220" />

</Canvas>

鼠标事件己经直接在XAML代码中进行了指定,因此在这里只要直接编写事件处理代码即可,代码如下所示。

        //画布鼠标移动事件

        void onCanvasMouseMove(object sender,MouseEventArgs E)

        {

            String msg = "x:y = " + e.GetPosition(null).X.ToString() + "," + e.GetPosition(null).Y.ToString();

            canvasBlock.Text = "Canvas: " + msg;

        }

        //鼠标移动事件

        void onRectMouseMove(object sender,MouseEventArgs E)

        {

            String msg = " x:y = " + e.GetPosition(null).X.ToString() + "," + e.GetPosition(null).Y.ToString();

            statusTextBlock.Text =((RectanglE)sender).Name+ msg;

        }

代码调用GetPosition获取鼠标的位置,并赋给TextBlock进行显示。通过事件冒泡机制,当在矩形上移动鼠标时,同时也触发了画布的@H_76_29@mouseMove事件。

@H_248_502@

大佬总结

以上是大佬教程为你收集整理的Silverlight的事件冒泡整理全部内容,希望文章能够帮你解决Silverlight的事件冒泡整理所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。