原文:http://www.limingchstudio.com/2009/07/silverlight-3-sdk-aspnet-mediaplayer.html
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 指示词的设定:
<%@ Register Assembly="System.Web.Silverlight"
Namespace="System.Web.UI.SilverlightControls" TagPrefix="asp" %>
如果您的方案是从 Silverlight™ 2 或是 Silverlight™ 3 Beta 升级而来,建议您将原本使用 ASP.NET Silverlight 控件的网页换成 <object> 标记,以便透过 HTML 语法内嵌并设定 Silverlight 插件,最重要的是此种方式可以与 Silverlight 所有支持的浏览器兼容。例如原本的网页程序代码为:
<
asp:Silverlight
runat
=
"server"
Width
=
"100%"
Height
=
"100%"
Source
=
"~/ClientBin/LimingStudio.xap"
ScaleMode
=
"Stretch"
MinimumVersion
=
"2.0.0.0"
OnClientPluginLoaded
=
"onLoad"
/>
改成:
<
script
type
=
"text/javascript"
>
function handleResize(obj) {
//
在此撰写处理 Silverlgiht 插件尺寸的程序代码
}
function onLoad(obj) {
//
在此撰写处理加载 Silverlgiht 插件的程序代码
}
</
script
>
...
<
object
data
=
"data:application/x-silverlight-2,"
type
=
"application/x-silverlight-2"
width
=
"100%"
height
=
"100%"
>
<
param
name
=
"Source"
value
=
"/ClientBin/LimingStudio.xap"
/>
<
param
name
=
"OnResize"
value
=
"handleResize"
/>
<
param
name
=
"minRuntimeVersion"
value
=
"3.0.40624.0"
/>
<
param
name
=
"OnLoad"
value
=
"onLoad"
/>
</
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 网站项目中,并在网页中加以引用。