静态HTML页面是在客户端由浏览器实现插件初始化。
服务器端页面:使用自带的Silverlight控件,由于这些控件在ASP.NET中的调用和运行都依赖于ASP.NET AJAX的JavaScript扩展,因此在向Web页面添加控件之前,必须先声明ScriptManager,从而使用服务器能向客户端发送正确的脚本。
asp:silverlight标记有3个重要的属性,第1个是Source属性,用于设置希望显得Silverlight应用程序的Url,允许的值可 以是预编译的xap包,或XAML文档;另一个重要的属性是MinimunVersion,用于获取或设置运行Silverlight应用程序所需的最低 插件版本;第3个ScriptType属性表示与当前插件关联的客户端Javascript对象类型名称。
当source属性值指向的是xap时,ScriptType属性将不会发挥任何作用。同时建议MinimunVersion也应该高于2.0。如果用户 浏览器插件的版本低于MinimunVersion属性值,则应用程序不仅不能初始化,而且插件还会自动弹出更新提示对话框,这种方式有利于保证用户能正 常使用应用程序的所有功能。
****System.Web.Silverlight.dll文件了,到这里下载,然后将其添加到项目引用中去.****
当开发人员使用预编译应用程序集时,只需向页面注册Silverlight程序集和命名空间,并配置控件标记的前缀,接下来就可以使用asp:Silverlight。
<%@ Page Language="C#" %>
<%@ Register Assembly="System.Web.Silverlight"
Namespace="System.Web.UI.SilverlightControls"
TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
style="height:100%;">
<head runat="server">
<title>SilverlightApplication1</title>
</head>
<body
style="height:100%;margin:0;">
<form id="form1" runat="server"
style="height:100%;">
<asp:ScriptManager
ID="ScriptManager1" runat="server">
<%--<Scripts>
<asp:ScriptReference Name="SilverlightControl.js" Assembly="System.Web.Silverlight" />
<asp:ScriptReference Path="Silverlight.js" />
</Scripts>--%>
</asp:ScriptManager>
<div
style="height:100%;">
<asp:Silverlight
ID="Xaml1"
runat="server"
Source="~/ClientBin/SilverlightApplication1.xap"
MinimumVersion="2.0.31005.0"
Width="400"
Height="300"
/>
</div>
</form>
</body>
</html>
无论是使用静态的HTML页面和ASP.NET页面,Silverlight的初始化都是在客户端完成的,而不是在服务器端,在客户端使用JS代码解析创建Object对象,配置相应的属性和参数。
PS:将文中的JS脚本注释后,仍可正常运行,但将Width和Height修改为百分比后,出现空白,不知是何原因,继续探究中....