Silverlight事件常见应用指南
创始人
2024-06-19 05:10:52
0

Silverlight事件的操作在实际应用中是一个比较复杂的步骤。其中包含的内容有很多种,想要全部掌握其中的操作技巧不是很容易实现。下面我们就先来了解一下Silverlight事件的基础操作方法。#t#

先简单介绍下Silverlight事件冒泡机制,理解的朋友要以先跳过此节。Silverlight是使用控件套用控件实现的,比如一个button必须在Canvas容器控件内,所以在点击Button的时候,如果Canvas指定了MouseLeftButtonDown事件,会先执行Button的MouseLeftButtonDown事件,随后执行Canvas的MouseLeftButtonDown事件。

常规事件的绑定有三种方法可以实现,在此为大家介绍。

1、在XAML的控件标记中添加属性制定,以属性="事件的执行名称"。

  1. < Canvas onLeftButtonDown=
    "leftButtonDown"> 
  2. < /Canvas> 

2、使用JavaScript的指定。。

  1. _silverlight_control.content.
    findName("controlName").addEvent
    Listener("onLeftButtonDown",
    functionName); 

3、使用MSIL的DLL中绑定(只限于Silverlight1.1以上版本)。。

  1. silverlight_control.MouseLeft
    ButtonDown += new System.Windows.
    Input.MouseEventHandler
    (silverlight_control_MouseLeft
    ButtonDown);  

您可以自定义Silverlight事件方法,如果想在JavaScript中使用.cs或.vb中声明托管事件,必须要使用Scriptable标记声明。

实例:

  1. C#  
  2. [Scriptable]  
  3. public partial class Page : Canvas  
  4. {  
  5. public Page()  
  6. {  
  7. this.Loaded += this.Page_Loaded;  
  8. }  
  9. private void Page_Loaded
    (object sender, EventArgs args)  
  10. {  
  11. InitializeComponent();  
  12. Storyboard1.Completed += new 
    EventHandler(Storyboard1_Completed);  
  13. WebApplication.Current.Register
    ScriptableObject("Page",this);  
  14. }  
  15. [Scriptable]  
  16. public event EventHandler eventName;  

 

调用:

  1. window.onload = function() {  
  2. var silverlightControl = document.
    getElementById(controlID);  
  3. if (silverlightControl)  
  4. silverlightControl.focus();  
  5. silverlightControl.content.Page.
    Finish=window.finish_handler; //绑定  
  6. }  
  7. window.finish_handler=function
    (sender,args) //使用C#调用此方法,激活按钮  
  8. {  
  9. document.getElementById('RePlay').
    style.display='inline';  

本实例是一个Silverlight事件交互的程序,***用Blend在Xaml中制做出一个动画Storyboard的实例对象。使用程序声明事件,并用Javascript调用事件委托。虽然可以在JavaScript中直接使用Storyboard. Completed实现,但在此实现JavaScript与C#事件托管实现!

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...