如何自定義silverlight的載入頁面

2022-01-31 22:07:20 字數 3872 閱讀 7027

這是我做的乙個載入例子,源**可參考**:

其實文章並不長,只有下面紅色的部分才是需要你實現的**。

開發平台

我用的是visual studio 2010 +

silverlight 4

其實用visual studio 2010/2008 + silverlight

4/3都可以的

下面首先介紹一下載入的原理:

how the

silverlight loader

works

silverlight

loader getting started

guide

silverlight

loader class

diagram

網上有一篇關於實現載入的介紹,基本上是翻譯過來的,不是很詳細,文章在此:

第一步:建立乙個slloader.xap專案或在現有的slloader.xap專案中使用silverlight

loader

第二步:實現isliverlightloader介面

在mainpage.xaml.cs中新增對命名空間silverlightloader的引用,實現**:

using silverlightloader;

//建立載入頁

mainpage loader = new

mainpage();

//設定該載入頁為載入項

this.rootvisual =

loader;

//建立載入資料報管理類,並開始載入目標xap,

//該類的建構函式中的第三個引數為模擬載入網速,

//為了模擬載入過程和除錯,可以通過設定該引數來模擬載入速度,單位為kb,

//當設該引數為0時,則採用真實頻寬載入目標xap。

packagedownloadmanager pdm = new

packagedownloadmanager(loader, e.initparams, 0);

}3.在mainpage.xaml.cs中實現isliverlightloader介面

有如下幾個isilverlightloader介面需要新增,也就是在下面幾介面中實現載入進度的互動顯示:

// 初始化載入須載入的資料報列表

void initcallback(listpackagesourcelist);       

// **函式,用於標識開始載入資料報

void downloadstartcallback(uri packagesource);

// **函式,用於標識載入進度發生變化

void downloadprogresscallback(uri packagesource,

downloadprogresseventargs eventargs);

// **函式,用於標識載入資料報結束

void

downloadcompletecallback(uri packagesource, downloadcompleteeventargs

eventargs);

mainpage.xaml.cs中的實現**如下,我現在把mainpage.xaml.cs的**全部粘上,紅色部分為所新增**:

using

system;

using system.collections.generic;

using system.linq;

using

system.net;

using system.windows;

using system.windows.controls;

using

system.windows.documents;

using system.windows.input;

using

system.windows.media;

using system.windows.media.animation;

using

system.windows.shapes;

using

silverlightloader;

namespace slloader

#region isilverlightloader members

//初始化載入須載入的資料報列表

void

isilverlightloader.initcallback(system.collections.generic.list

packagesourcelist)

//**函式,用於標識開始載入資料報

void

isilverlightloader.downloadstartcallback(uri packagesource)

//**函式,用於標識載入進度發生變化

void

isilverlightloader.downloadprogresscallback(uri packagesource,

downloadprogresseventargs eventargs)

//**函式,用於標識載入資料報結束

void

isilverlightloader.downloadcompletecallback(uri packagesource,

downloadcompleteeventargs eventargs)

#endregion}}

第三步:在html頁面或asp:silverlight控制項設定初始載入介面與載入目標

該步就是在html或asp:silverlight控制項中加入對slloader.xap的呼叫,並將loadtarget.xap的名字做為引數傳遞給slloader.xap,以便載入,

可以看出,在建立整個專案的過程中,slloader.xap和loadtarget.xap並不需要打交道,只在hhtml或asp:silverlight控制項設定中才把二者聯絡起來。

" style="text-decoration: none;">

" alt="get microsoft

silverlight"

style="border-style: none" />

注意slloader.xap和loadtarget.xap的位置,此時把html檔案、slloader.xap和loadtarget.xap放在同一目錄下即可實現載入。

2.在asp:silverlight控制項中設定的方法

slloader.xap"

minimumversion="2.0.31005.0"

width="550" height="400"

initparameters="loadersourcelist=loadtarget.xap"

/>

與在html中通過object物件設定的原理相同。

3.如果此時編譯slloader.xap專案,可能通不過,提示缺少對system.runtime.serialization.json的引用,

為解決此問題,需要新增如下三個引用,參考文章:

1.system.runtime.serialization

2.system.servicemodel

3.system.servicemodel.web

至此,乙個載入功能製作完畢。

注意事項:

為了您的安全,請只開啟**可靠的**

開啟**

取消來自:

自定義 如何自定義協議

何為自定義協議,其實是相對標準協議來說的,這裡主要針對的是應用層協議 常見的標準的應用層協議如http ftp smtp等,如果我們在網路通訊的過程中不去使用這些標準協議,那就需要自定義協議,比如我們常用的rpc框架 dubbo,thrift 分布式快取 redis,memcached 等都是自定義...

7 自定義異常 如何自定義異常???

自定義異常類時,需要繼承exception類或其子類 一般多繼承自exception或runtimeexception 如果繼承exception,則為檢查異常,必須處理 如果繼承runtimeexception,則為執行時異常,可以不處理 public class test public stat...

如何自定義控制項

1 自定義屬性的宣告與獲取 1.1分析需要的自定義屬性 1.2在res values attrs.xml中定義自定義屬性 1.3在layout的xml檔案中宣告使用 1.4在自定義view中的構造方法中獲取使用 2 測量onmeasure 2.1求出子檢視的個數 通過getchildcount 方法...