Silverlight 如何:指定和检索自定义初始化参数

http://msdn.microsoft.com/zh-cn/library/cc189004(VS.95).aspx

当您在某一网页中嵌入 Silverlight 插件时,可以在插件配置中指定自定义初始化参数。这些参数是可以在 Application.Startup 事件的处理程序中检索的名称和值对。您还可以随时通过 SilverlightHost.InitParams属性检索这些参数。

自定义初始化参数允许您承载网页以影响您的应用程序初始化。例如,可以将自定义初始化参数和基于 Silverlight 的钟控件一起使用来指定数字或模拟显示。

下面的代码示例演示如何在宿主网页中指定自定义初始化参数。然后,它演示如何在 Startup 事件处理程序中通过 StartupEventArgs.InitParams 属性检索这些参数。

此示例还演示如何在启动时通过 HtmlDocument.QueryString 属性检索 URL 参数。请注意,如果禁止 HTML 访问(跨域承载时的默认设置),则不能检索 URL 参数。有关更多信息,请参见 HTML 桥中的安全设置

  示例

html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html  >

<!-- saved from url=(0014)about:internet -->

<head>

    <title>SilverlightApplication</title>

    <script type="text/javascript" src="Silverlight.js"></script>

</head>

<body>

    <table>

    <tr><td>

        <object id="slPlugin1" width="300" height="50"

            data="data:application/x-silverlight-2," 

            type="application/x-silverlight-2" >

            <param name="source" value="ClientBin/SilverlightApplication.xap"/>

            <param name="initParams" 

                value="id=slPlugin1,embeddingTechnique=objectElement"/>

            <!-- Installation HTML omitted. -->

        </object>

    </td></tr>

    <tr><td>

        <div id="silverlightControlHost">

            <script type="text/javascript">

                Silverlight.createObject(

                    "ClientBin/SilverlightApplication.xap",  

                    silverlightControlHost, "slPlugin2",

                    { width: "300", height: "50", background: "white" }, { },

                    "id=slPlugin2,embeddingTechnique=createObject" );

            </script>

        </div>

    </td></tr>

    </table>

</body>

</html>

C#

private void Application_Startup(object sender, StartupEventArgs e)

{

    Page p = new Page();

    this.RootVisual = p;



    // This assumes that Page.LayoutRoot exists and is a StackPanel.

    StackPanel layoutRoot = p.LayoutRoot; 



    // Display the custom initialization parameters.

    foreach (String key in e.InitParams.Keys)

    {

        layoutRoot.Children.Add(new TextBlock() {

            Text = String.Format(

                "from InitParams: {0} = {1}", key, 

                e.InitParams[key])

        });

    }



    // Display the URL parameters.

    foreach (String key in HtmlPage.Document.QueryString.Keys)

    {

        layoutRoot.Children.Add(new TextBlock()

        {

            Text = String.Format(

                "from QueryString: {0} = {1}", key, 

                HtmlPage.Document.QueryString[key])

        });

    }            

}

应用程序扩展服务可以访问其 IApplicationService.StartService 方法实现中的自定义初始化参数。有关更多信息,请参见应用程序扩展服务

你可能感兴趣的:(silverlight)