一个XAP中有多个Silverlight控件时如何选择调用

为了节省文件大小,应该把多个Silverlight控件放在一个XAP文件里,例如Page1.xaml和Page2.xaml。第一次加载哪一个可以在App的Startup事件的处理事件中选择性加载。
private void Application_Startup(object sender,StartupEventArgs e)
{
    
//   Load  the main control
    this.RootVisual 
=  new Page1();
    // 或者加载Page2
    //this.RootVisual = new Page2();
}

如果要判断,可以通过 StartupEventArgs对象的InitParams集合,这是一个 键/值对集合,向它传入初始化参数。方法如下:
< asp:Silverlight ID = "Xaml1" runat = "server" ... InitParameters = "Author = renji,Url = http: // renji.cnblogs.com,Role =User " />
或在Object里面:
< param name = "initParams" value = " Author = renji,Role =User />
 
这样在App.xaml.cs中就可以检查值了:
if (!e.InitParams.ContainsKey("Role")) {     this.RootVisual = new Page1(); } else {     switch (e.InitParams["Role"])     {         case "User":             this.RootVisual = new Page1();             break;         case "Admin":             this.RootVisual = new Page2();             break;         default:             throw new Exception("缺少权限信息");     } }

相关文章

如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的...
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,...
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如...
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不...
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:...
我需要根据Silverlight中的某些配置值设置给定控件的Style.我...