Silverlight Object 标签属性介绍、初始化参数的设置和获取、客户端系统信息获取

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);  

 

转自:http://terryfeng.javaeye.com/blog/595585

你可能感兴趣的:(silverlight)