摘要:Silverlight™ 3 SDK(軟體開發套件)已經移除 ASP.NET MediaPlayer 與 ASP.NET Silverlight 這 2 個 Silverlight 的 ASP.NET 控制項
Silverlight™ 2 SDK(安裝 Silverlight™ 2 Tools for Visual Studio 2008 SP1 時,即會隨之安裝)提供的 2 個 Silverlight ASP.NET 伺服器控制項:
- ASP.NET MediaPlayer 控制項
將音訊 (WMA) 和視訊 (WMV) 的媒體來源,整合到 Web 應用程式中。 - ASP.NET Silverlight 控制項
搭配 ScriptManager 控制項,讓您在 Web 網頁中,內嵌 XAML 應用程式。
在 Silverlight™ 3 SDK(安裝 Silverlight™ 3 Tools for Visual Studio 2008 SP1 時,即會隨之安裝)已經移除了上述的 Silverlight™ ASP.NET 伺服器控制項,也就是說,當您在未安裝過 Silverlight™ 2 SDK 的 Visual Studio 2008 SP1 整合式開發環境中,開啟 .aspx 網頁,展開「工具箱」之後,將看不到「Silverlgiht」這 個索引標籤(如果您同時安裝 Silverlight™ 2 SDK 與 Silverlight™ 3 SDK,則會看到該索引標籤)。如欲將既有的 Silverlight™ 2 方案升級成 Silverlight™ 3,或是在 Silverlight™ 3 使用這 2 個控制項,請自行由 MSDN Code Gallery 下載 ASP.NET Server Controls for Silverlight Samples(其內含的 System.Web.Silverlight.dll 目前版本為 3.0.40210.0)。
下載完畢之後,請解開壓縮檔,將其根目錄中的 System.Web.Silverlight.dll 複製到 Silverlight™ 3 方案中的 ASP.NET 網站專案內的 Bin 目錄。接著用滑鼠右鍵按一下「方案總管」中的網站專案,然後按下「屬性頁」指令,再按下「參考」節點,以便將剛剛複製的 System.Web.Silverlight.dll 加入參考。
不要忘記要在 Web.config 檔指定標記前置詞與命名空間的對應,或是直接在 ASP.NET 網頁中,使用 @ Register 指示詞,如下所示即是在網頁中,使用 @ Register 指示詞的設定:
1.
<%@ Register Assembly="System.Web.Silverlight"
2.
Namespace="System.Web.UI.SilverlightControls" TagPrefix="asp" %>
如果您的方案是從 Silverlight™ 2 或是 Silverlight™ 3 Beta 升級而來,建議您將原本使用 ASP.NET Silverlight 控制項的網頁換成 <object> 標記,以便透過 HTML 語法內嵌並設定 Silverlight 外掛程式,最重要的是此種方式可以與 Silverlight 所有支援的瀏覽器相容。例如原本的網頁程式碼為:
1.
<
asp:Silverlight
runat
=
"server"
Width
=
"100%"
Height
=
"100%"
2.
Source
=
"~/ClientBin/LimingStudio.xap"
3.
ScaleMode
=
"Stretch"
4.
MinimumVersion
=
"2.0.0.0"
5.
OnClientPluginLoaded
=
"onLoad"
/>
改成:
01.
<
script
type
=
"text/javascript"
>
02.
function handleResize(obj) {
03.
// 在此撰寫處理 Silverlgiht 外掛程式尺寸的程式碼
04.
}
05.
06.
function onLoad(obj) {
07.
// 在此撰寫處理載入 Silverlgiht 外掛程式的程式碼
08.
}
09.
</
script
>
10.
11.
...
12.
13.
<
object
data
=
"data:application/x-silverlight-2,"
type
=
"application/x-silverlight-2"
width
=
"100%"
height
=
"100%"
>
14.
<
param
name
=
"Source"
value
=
"/ClientBin/LimingStudio.xap"
/>
15.
<
param
name
=
"OnResize"
value
=
"handleResize"
/>
16.
<
param
name
=
"minRuntimeVersion"
value
=
"3.0.40624.0"
/>
17.
<
param
name
=
"OnLoad"
value
=
"onLoad"
/>
18.
</
object
>
茲將上述的參數簡要說明如下:
- 使用 data 屬性可以避免在某些瀏覽器上發生效能低落的問題。提醒大家,末端雙引號前的逗號是屬性值的一部分,代表第 2 個資料參數的值是空值。
- type 屬性是用 Silverlight MIME 類型來識別 Silverlight 外掛程式及其所需的版本。
- 至於 width 和 height 是為了跨瀏覽器相容性所需的屬性,用來指定相對於父項目寬度和高度的固定像素值或是百分比。如果使用相對大小,即可以透過上述程式碼中的 handleResize 函式來處理 Content.Resized 事件,以便當外掛程式的大小變更時,可以進行適當的處理。
- param 項目中的 source 是必要的屬性設定,它會指出應用程式檔案所在的位置與名稱。我們通常會使用相對路徑來指定 .xap 應用程式套件。
- param 項目中的 minRuntimeVersion 用來指定執行 Silverlight 應用程式所需的 Silverlight 外掛程式之最小版本為何。
最後,請不要忘記將 Silverlight™ 3 所提供的
Silverlight.js檔(預設的所在目錄為:C:\Program Files\Microsoft SDKs\Silverlight\v3.0\Tools)複製到 ASP.NET 網站專案中,並在網頁中加以引用。