第十七章 从 Silverlight 控件打开特定的 xaml 页
每个 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();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。