天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

在兩個Silverlight應用間應用間數據通信DEMO(包括與Flash通信)

因為Silverlight可以訪問HTML中的DOM元素以及調用HTML頁面中的JS方法,并且可以將自身的方法"暴露"給HTML頁面中的JS方法(通過[ScriptableMember]),所以我們可以利用這一特點來實現兩個Silverlight應用程序之間的數據通信。為了直觀起見,本人做了這個DEMO,希望能夠對大家在理解上有所幫助。

本DEMO的工作流程如下:

Silverlight 1 調用HTML中的JS方法,而該方法會去調用Silverlight 2中“暴露”的方法來顯示選中的數據。

請大家先看一下這個DEMO的運行效果,如下圖所示:

在上圖中分別有兩個Silverlight應用,一個是雇員列表,一個是詳細信息。其中的雇員列表是我以前在園子里發表過的一遍文章中提到的DEMO,這里只是為了便于演示而簡單的加以改造,其雇員類信息如下:

[ScriptableType]
public class EmployeeInfo
{
    
/// <summary>
    
/// 雇員編號
    
/// </summary>
    [ScriptableMember]
    
public int EmployeeNo { getset; }
    
/// <summary>
    
/// 雇員名稱
    
/// </summary>
    [ScriptableMember]
    
public string EmployeeName { getset; }
    
/// <summary>
    
/// 地址
    
/// </summary>
    [ScriptableMember]
    
public string Address { getset; }
}

  上面的ScriptableType,ScriptableMember屬性綁寫是為了讓html中的腳本代碼可以訪問(即可見)。

而下面的代碼則是為了定義一個“腳本對象類”及其事件處理(包括參數)。

/// <summary>
/// 雇員事件參數(用于完成與js綁定事件參數)
/// </summary>
[ScriptableType]
public class EmployeeInfoEventArgs : EventArgs
{
    [ScriptableMember]
    
public EmployeeInfo employeeInfo { getset; }
}

/// <summary>
/// 要注冊并在頁面中使用的js調用腳本對象
/// </summary>
[ScriptableType]
public class JavaScriptableObject
{
    
/// <summary>
    
/// js捆綁的事件處理器
    
/// </summary>
    [ScriptableMember]
    
public event EventHandler<EmployeeInfoEventArgs> SelectEmployeeInfo;

    
public void OnSelectEmployeeInfo(EmployeeInfo employeeinfo)
    {
        
if (SelectEmployeeInfo != null)
        {
            SelectEmployeeInfo(
thisnew EmployeeInfoEventArgs()
            {
                employeeInfo 
= employeeinfo
            });
        }
    }
}

有了數據和數據結構,我們可以在應用程序中給列表控件綁定數據源了,如下:

//這里必須聲明是public,否則js調用該方法時會報錯
[ScriptableMember]
public void LoadData(int count)
{
    
//加載指定數據的雇員信息
    EmployeeList.ItemsSource = new EmployeeManager().GetEmployeeList(count);
}

到這里,基本上DEMO中的主要內容就介紹完了。

下面再給大家演示一個Silverlight與FLASH進行數據通信 的例子,其實現的功能如下:

在Silverlight應用中拖動一張圖片,在右側的FLASH區域中相應的FLASH對象跟著被“移動”,其效果如下圖所示:

 
 
 

其實這個DEMO最初的原型出自微軟件的黃繼佳,我是在一次SILVERLIGHT培訓中看到他這個演示,當時我想實現原理應該與本文所提到的大同小異,后來被證實現確實如此。當然他的演示中實現的JS代碼很簡單,完全就是用純JS來實現即可。我這里并未完全使用了他的模型代碼。因為上面所說的是在CS代碼中進行事件的綁定及其相關操作,所以我還是照上面所提供的思路重新寫了這個DEMO,實現的效果與黃紀佳的原型基本相似。因為篇幅起見,這里就不多做贅述了,大家下載代碼后一看便知(SLImage.xaml.cs和SLtoFlash.htm文件)。

好的,今天的內容就先到這里了。

NET技術在兩個Silverlight應用間應用間數據通信DEMO(包括與Flash通信),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产高清视频青青青在线 | 国产亚洲精品久久久久久白晶晶 | 99热热在线精品久久 | 亚洲午夜久久久无码精品网红A片 | 精品无码日本蜜桃麻豆 | 国产在线视频一区二区不卡 | 国产亚洲精品AV麻豆狂野 | 色婷婷五月综合久久中文字幕 | 国产成人一区二区三中文 | 欧美无码专区 | 国产 高清 无码 中文 | 极品美女久久久久久久久久久 | 一个人免费观看完整视频日本 | 色综合 亚洲 自拍 欧洲 | 亚洲一级毛片免费在线观看 | 在线观看中文字幕码2021不用下载 | 中文国产在线观看 | 国产国产乱老熟视频网站 | 40分钟超爽大片黄 | 伊人久久大香线蕉综合亚洲 | 性欧美sexovideotv | 亚洲乱码AV久久久久久久 | 激情午夜307 | 国产成人拍精品免费视频爱情岛 | 国产精品无码AV天天爽色欲 | 国产成人精品综合在线 | 男污女XO猛烈的动态图 | 国产午夜视频在永久在线观看 | 国产亚洲精品AV片在线观看播放 | 99国产精品偷窥熟女精品视频 | 欧美成人3d动漫专区 | 善良的小峓子2在钱免费中文字 | 俄罗斯人与动ZOZ0 | 久青草影院 | 亚洲 综合 自拍 精品 在线 | 在线看片韩国免费人成视频 | 日本熟妇乱妇熟色A片蜜桃亚洲 | 免费果冻传媒在线完整观看 | 99精品成人无码A片观看金桔 | 情浓野战台湾三级 | 欧美一区二区高清 |