为了节省文件大小,应该把多个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,Url=http://renji.cnblogs.com,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("缺少权限信息");
}
}
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,Url=http://renji.cnblogs.com,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("缺少权限信息");
}
}