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
SilverlightApplication
<script type="text/javascript" src="Silverlight.js"></script>
<script type="text/javascript"> Silverlight.createObject( "ClientBin/SilverlightApplication.xap", silverlightControlHost, "slPlugin2", { width: "300", height: "50", background: "white" }, { }, "id=slPlugin2,embeddingTechnique=createObject" ); </script> |
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 方法实现中的自定义初始化参数。有关更多信息,请参见应用程序扩展服务。