程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Silverlight中.Net與Javascript事件交互

Silverlight中.Net與Javascript事件交互

編輯:.NET實例教程
在本章裡,由靈會為您介紹Silverlight的事件相關知識和實例。Silverlight使用了事件冒泡的機制,和Web中的JavaScript事件是一樣!每一個控件都可以有自己獨有的事件,本文會為大家介紹常用控件的事件。
 先簡單介紹下事件冒泡機制,理解的朋友要以先跳過此節。Silverlight是使用控件套用控件實現的,比如一個button必須在Canvas容器控件內,所以在點擊Button的時候,如果Canvas指定了MouseLeftButtonDown事件,會先執行Button的MouseLeftButtonDown事件,隨後執行Canvas的MouseLeftButtonDown事件。
常規事件的綁定有三種方法可以實現,在此為大家介紹。
 1、在XAML的控件標記中添加屬性制定,以屬性="事件的執行名稱"。
  <Canvas onLeftButtonDown="leftButtonDown"></Canvas>

 2、使用JavaScript的指定。。


  _silverlight_control.content.findName("controlName").addEventListener("onLeftButtonDown",functionName);

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


  silverlight_control.MouseLeftButtonDown += new System.Windows.Input.MouseEventHandler(silverlight_control_MouseLeftButtonDown);

您可以自定義事件方法,如果想在JavaScript中使用.cs或.vb中聲明托管事件,必須要使用Scriptable標記聲明。

下面我們列出常用的事件列表:
事件名稱 所在控件 說明。


事件名稱 所在控件 說明 Loaded UIElement基類 子控件加載後發生 OnResize System.Windows.Interop.BrowserHost 靜態方法,大小重設是發生 OnFullScreenChange System.Windows.Interop.BrowserHost 靜態方法,全屏改變時發生 MouseLeftButtonDown UIElement基類 鼠標點擊發生 MouseLeftButtonUp UIElement基類 鼠標放開時發生 MouseLeave UIElement基類 鼠標移開時發生

r> MouseEnter UIElement基類 鼠標經過時發生 DownloadProgressChanged Image, Downloader, MediaElement 進度更改時發生 GotFocus UIElement基類 獲得焦點時發生 LostFocus UIElement基類 失去焦點時發生 ImageFailed Image 圖像失敗時發生 BufferingProgressChanged MediaElement 緩沖更改時發生 CurrentStateChanged MediaElement 播放狀態更改時發生 MediaEnded MediaElement 播放停止時發生 MediaFailed MediaElement 播放失敗時發生 MediaOpened MediaElementss 打開以後發生 KeyDown UIElement基類 鍵盤按下時發生 KeyUp UIElement基類 鍵盤起來時發生 Completed Storyboard 播放完時發生
實例:
C#

   [Scriptable]
public partial class Page : Canvas
{
  

pan>public Page()
         {
              this.Loaded += this.Page_Loaded;
     }
private void Page_Loaded(object sender, EventArgs args)
         {
            InitializeComponent();
            Storyboard1.Completed += new EventHandler(Storyboard1_Completed);
            WebApplication.Current.RegisterScriptableObject("Page",this);
         }
                  [Scriptable]
public event EventHandler eventName;
}

調用:



window.onload = function() {
         var silverlightControl = document.getElementById(controlID);
         if (silverlightControl)
              silverlightControl.focus();
         silverlightControl.content.Page.Finish=window.finish_handler;  //綁定
     }
     window.finish_handler=function(sender,args)                   //使用C#調用此方法,激活按鈕
{
         document.getElementById(''RePlay'').style.display=''inline'';
}

本實例是一個事件交互的程序,首選用Blend在Xaml中制做出一個動畫Storyboard的實例對象。使用程序聲明事件,並用Javascript調用事件委托。雖然可以在Javascript中直接使用Storyboard. Completed實現,但在此實現JavaScript與C#事件托管實現!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved