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

    冯瑞涛
  • 相关阅读:
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Storm 1.1.0 中文文档 | ApacheCN
    mysql生成随机字符串
    nginx的5个特点
    虚拟机网络配置
    (mapreduce题) 找出有共同好友的 users --好好玩
    activemq-5.15.10 启动不了
    mysql导出 Excel数据字典(全)
    WebStorm 免注册码
  • 原文地址:https://www.cnblogs.com/finehappy/p/1668608.html
Copyright © 2020-2023  润新知