Silverlight™ 3 SDK(軟體開發套件)已經移除 ASP.NET MediaPlayer 與 ASP.NET Silverlight 這 2 個 Silverlight 的 ASP.NET 控制項

摘要: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 伺服器控制項:

在 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 外掛程式及其所需的版本。


  • 至於 widthheight 是為了跨瀏覽器相容性所需的屬性,用來指定相對於父項目寬度和高度的固定像素值或是百分比。如果使用相對大小,即可以透過上述程式碼中的 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 網站專案中,並在網頁中加以引用。