为了节省文件大小,应该把多个Silverlight控件放在一个XAP文件里,例如Page1.xaml和Page2.xaml。第一次加载哪一个可以在App的Startup事件的处理事件中选择性加载。
如果要判断,可以通过 StartupEventArgs对象的InitParams集合,这是一个 键/值对集合,向它传入初始化参数。方法如下:
这样在App.xaml.cs中就可以检查值了:
private void Application_Startup(object sender, StartupEventArgs e)
{
// Load the main control
this.RootVisual = new Page1();
// 或者加载Page2
//this.RootVisual = new Page2();
}
{
// 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("缺少权限信息");
}
}
{
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("缺少权限信息");
}
}