自學silverlight 5.0

来源:http://www.cnblogs.com/roucheng/archive/2016/04/30/silverlight.html
-Advertisement-
Play Games

這是一個silverlight游戲:http://keleyi.com/keleyi/phtml/silverlight/ 接了個單子,非要用Silverlight 5來作一個項目,之前從來沒接觸過這東西,為了工作,硬著頭皮也要上了。摸索了一晚上,大至整理出一些項目中需要的東西,以下作為初探記錄:S ...


這是一個silverlight游戲:http://keleyi.com/keleyi/phtml/silverlight/

接了個單子,非要用Silverlight 5來作一個項目,之前從來沒接觸過這東西,為了工作,硬著頭皮也要上了。摸索了一晚上,大至整理出一些項目中需要的東西,以下作為初探記錄:

Silverlight 5與Javascript的交談方式

Silverlight 5屬於客戶端的東西,客戶端的東西與伺服器端交流,第一時間想到了基於javascript的ajax這個萬能膠,所以先從Silverlight 5與Javascript交互方式入手。

一、Silverlight 5發言,Javascript傾聽

從Silverlight 5里向Javascript發送程式運行請求。
Silverlight 5端代碼具體如下: 

HtmlPage.Window.Invoke("Javascript函數方式", "傳值-Oyiboy");

通過以上代碼可以直接在Silverlight 5里運行Javascript的腳本代碼,併發送必要的數據出來。

二、Javascript發言,Silverlight 5傾聽

Javascript使用ajax獲取伺服器端數據後發送給Silverlight 5,以達到Silverlight 5與伺服器端的交互效果。
Silverlight 5端代碼具體如下:

//設置值
[ScriptableMember()]//這行是關鍵,必須有這個javascript才能請求到這個方法
public void setVal(string D)
{
this.textView.Text = D;
}
//javascript主動要求返回值
[ScriptableMember()]
public string returnVal()
{
return this.textView.Text;
}


Html代碼調整:
需要在Silverlight 5插件的object代碼內里添加以下參數設置句,以達到插件在載入後獲取siliverlight對象。

<param name="onLoad" value="siliverLoaded" />



Javascript代碼具體如下:

//siliverlight對象
var siliverlightObj = null;
//上面那個HTML代碼內設置的Silverlight 5 onLoad事件觸發的函數
function siliverLoaded(sender, args) {
siliverlightObj = sender.getHost();
}

//以下代碼中的.buttonSet和.buttonReu是兩個帶這些class的按鈕,按鈕就不詳細寫出來了
//這個是運行Silverlight 5內的setVal方法
$(".buttonSet").click(function () {
siliverlightObj.Content.Main.setVal("javascript傳入值-Oyiboy");
})
//這個是運行Silverlight 5內的returnVal方法
$(".buttonReu").click(function () {
alert(siliverlightObj.Content.Main.returnVal());
});
// hovertree.com

 

以上幾個方式,靈活使用的活基本上就完全解決了Silverlight 5與伺服器端之間的交流,好吧,雖然這篇的東西的主題是Silverlight 5與Javascript,但最終目的還是Silverlight 5與伺服器端的交互,反正ajax也不是什麼新物,所以就跳過了。

感想:通過Silverlight 5的對象siliverlightObj.Content.Main這一大竄東西來看,siliverlightObj還能作更多的事了,具體還要慢慢摸索了,如果以後有需要用到的話,還可能會出這個的說明文章吧,或許。

補漏: 
關於siliverlightObj.Content.Main中的Main是指在Silverlight 中app.xaml的Application_Startup事件中註冊的訪問名稱,具體代碼如下:

private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
System.Windows.Browser.HtmlPage.RegisterScriptableObject("Main", this.RootVisual);
}



從代碼中可知,如果有多個xaml頁的話,只要在這裡註冊不同的名稱就可以引用不同xaml頁內聲明的Javascript方法了。 
剛剛整理代碼時在APP.xaml發現這句代碼才想起把這個給漏了,今天補回。

silverlight加密:http://keleyi.com/tool/md5.htm

轉自:http://hovertree.com/h/bjaf/silverlight5.htm

silverlight數字時鐘:
獲取 Microsoft Silverlight

http://roucheng.cnblogs.com/


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 選擇題 1、要保證資料庫的邏輯數據獨立性,需要修改的是||A||。 A: 模式與外模式之間的映射 B: 模式與內模式之間的映射 C: 模式 D: 三級模式 2、資料庫系統的數據獨立性體現在||B||。 A: 不會因為數據的變化而影響到應用程式 B: 不會因為數據存儲結構與數據邏輯結構的變化而影響應用 ...
  • 360網盤 https://yunpan.cn/cPxT6CV9Kydyb 訪問密碼 1df9 ...
  • 修改grub項 修改其中三項 為 更新grub 設置systemd 重啟見效 參見文獻(URL): http://ask.xmodulo.com/boot-into-command-line-ubuntu-debian.html ...
  • 以下是由本人測試可用的pptpd構架方法 按步驟: 運行環境Centeros 6 *首先運行如下命令: cat /dev/net/tun 返回的必須是: cat: /dev/net/tun: File descriptor in bad state 運行: cat /dev/ppp 返回的必須是: ...
  • Ubuntu操作基本快捷鍵* 打開主菜單 = Alt + F1* 運行 = Alt + F2* 顯示桌面 = Ctrl + Alt + d* 最小化當前視窗 = Alt + F9* 最大化當前視窗 = Alt + F10* 關閉當前視窗 = Alt + F4* 截取全屏 = Print Screen ...
  • 本文轉載自http://blog.csdn.net/haoel 陳皓專欄 很多編程的朋友都在網上問我這樣的幾個問題,Unix怎麼學?Unix怎麼這麼難?如何才能學好?並且讓我給他們一些學好Unix的經驗。在絕大多數時候,我發現問這些問題的朋友都有兩個特點: 1)對Unix有畏難心理,對其沒有信心; ...
  • Microsoft .NET Pet Shop 4:將 ASP.NET 1.1 應用程式遷移到 2.0 發佈日期: 2006-5-9 | 更新日期: 2006-5-9 適用於:Microsoft .NET Framework 2.0Microsoft Visual Studio 2005Micros ...
  • 一般情況下,一個類中往往包含欄位,屬性和方法。其中,屬性是對欄位的封裝,以便於增加訪問限制以及某些特別的邏輯。比如當欄位被賦值的時候執行一段邏輯代碼等等。經常用來做賦值驗證。欄位的賦值也可以通過構造函數的參數來傳遞。當對象建立的時候就可以初始化欄位。一種簡便的初始化欄位的方法是對象初始化器,例如:A ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...