每个 Silverlight 应用程序项目可以包含多个 xaml 页面。当你从 web页面指定.xap文件时,可以通过设置 Application.RootVisual属性来确定默认显示的 xaml 页。
可能有这种情况,从不同的 Web 页面指定相同的 .xap文件显示不同的XAML文件。可以通过 xaml 文件名或通过Silverlight控件的InitParameters属性确定一些其他类型。这个属性可以从Web页面设置 Silverlight控件。从Web页面设置的值将通过 Silverlight控件读取并打开合适的 xaml 页面。
为了说明这点,我们创建一个 Silverlight 项目,名为“ OpenSpecificXaml ”。
当你编译生成项目后,放置 Silverlight 控件在你的 Web 页面,如下所示:
< asp : Silverlight InitParameters="PageName=Page1"ID="Silverlight1"
runat ="server" Source="~/ClientBin/OpenSpecificXaml.xap"
MinimumVersion ="2.0.30923.0" Width ="100%" Height="100%"/>
在上面代码,看见如下代码
InitParameters ="PageName=Page1"
这里设置的“ InitParameters ”具有键 - 值对关系标识默认打开的 xaml页面。
现在,将在 App.xaml 文件中读这个属性并为 Application.RootVisual 属性设置适当的页面。这里有个示例用在App.xaml.cs中实现这一目标:
private void Application_Startup(object sender,StartupEventArgs e) {
IDictionary <string , string > parameters = e.InitParams;
if (parameters == null ) {
// 没有参数传递时,打开默认的xaml
this .RootVisual = new DefaultPage();
} else if (parameters["PageName" ] =="Page1" ) {
this .RootVisual = new Page1();
} else if (parameters["PageName" ] =="Page2" ) {
this .RootVisual = new Page2();
} else {
// 打开默认的xaml
this .RootVisual = new DefaultPage();
}
}
Silverlight入门知识学习目录