HTML元素属性介绍
Silverlight 作为网页的一部分宿主在浏览器当中,使用 HTML 元素的形式声明的。
当你在新建一个Silverlight项目的时候,VS会为你建立一个用于测试的HTML
<!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" > <head> <title>SlSample1</title> <style type="text/css"> html, body { height: 100%; overflow: auto; } body { padding: 0; margin: 0; } #silverlightControlHost { height: 100%; text-align:center; } </style> <script type="text/javascript" src="Silverlight.js"></script> <script type="text/javascript">
//js用来显示SL错误的脚本,这里可以自定义 function onSilverlightError(sender, args) { var appSource = ""; if (sender != null && sender != 0) { appSource = sender.getHost().Source; } var errorType = args.ErrorType; var iErrorCode = args.ErrorCode; if (errorType == "ImageError" || errorType == "MediaError") { return; } var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; errMsg += "Code: "+ iErrorCode + " \n"; errMsg += "Category: " + errorType + " \n"; errMsg += "Message: " + args.ErrorMessage + " \n"; if (errorType == "ParserError") { errMsg += "File: " + args.xamlFile + " \n"; errMsg += "Line: " + args.lineNumber + " \n"; errMsg += "Position: " + args.charPosition + " \n"; } else if (errorType == "RuntimeError") { if (args.lineNumber != 0) { errMsg += "Line: " + args.lineNumber + " \n"; errMsg += "Position: " + args.charPosition + " \n"; } errMsg += "MethodName: " + args.methodName + " \n"; } throw new Error(errMsg); } </script> </head> <body> <form id="form1" runat="server" style="height:100%"> <div id="silverlightControlHost"> -- Silverlight插件的容器 <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="ClientBin/SlSample1.xap"/> ----Silverlight文件的位置,相对和绝对路径均可 <param name="onError" value="onSilverlightError" /> -- 设置使用js来显示Sl的错误信息这里设置了一个方法名称,定义在上面 <param name="background" value="white" /> --背景色 <param name="minRuntimeVersion" value="3.0.40818.0" /> -- 最低可运行的版本 <param name="autoUpgrade" value="true" /> -- SL是否可以自动更新 <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none"> <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> </a> -- SL的下载地址,这里可以指向一个局域网内的服务器,提供更快的下载速度 </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> </form> </body> </html>
除此之外还有一下几个属性比较重要 <param name="enableHtmlAccess" value="true" /> -- 开启访问Javascript 和Dom的能力 <param name="enableGPUAcceleration" value="true" /> -- 开启GPU加速 <param name="initParams" value="id=12345,name=你好" /> --初始化参数的属性
获取初始化参数和网页参数
获取通过initParams 属性初始化的参数
App.xaml.cs文件
private void Application_Startup(object sender, StartupEventArgs e) { string para1 = e.InitParams.Keys["id"]; string para2 = e.InitParams.Keys["name"]; this.RootVisual = new MainPage(para1,para2); }
获取URL传递的参数
foreach (String key in HtmlPage.Document.QueryString.Keys) { //添í加ó到?ListBox中D listBox1.Items.Add(new TextBlock() { Text = String.Format( "URL参?数y:o{0} = {1}", key, HtmlPage.Document.QueryString[key]) }); }
任何XAML中获取initParams的方法
App.Current.Host.InitParams["id"];
获取客户端系统信息
using System.Windows.Browser;
//请先引用System.Windows.Browser;
BrowserInformation browserInfo
= HtmlPage.BrowserInformation;
tbkName.Text = string.Format("Name: {0}"
, browserInfo.Name);
tbkVer.Text = string.Format("BrowserVersion: {0}"
, browserInfo.BrowserVersion);
tbkPlatform.Text = string.Format("Platform: {0}"
, browserInfo.Platform);
tbkUserAgent.Text = string.Format("UserAgent: {0}"
, browserInfo.UserAgent);