工具:Visual Studio 2010,Silverlight 3.0
目前知道的就2种方式。
1、直接在App.xaml.cs文件里修改当前启动的xaml
private void Application_Startup(object sender, StartupEventArgs e)
{
//SilverlightControl1是新建的xaml文件名称
this.RootVisual = new SilverlightControl1();//new MainPage();
}
2、在.html页面或.aspx页面里添加启动参数,然后在App.xaml.cs获取启动参数,根据不同的参数运行不同的xaml文件。
如下:
在.html页面或.aspx页面添加红色字体部分:
<div id="silverlightControlHost">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/Video.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40818.0" />
<param name="autoUpgrade" value="true" />
<param name="initParams" value="StartParm=Grid" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight" style="border-style:none"/>
</a>
</object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
在App.xaml.cs文件里获取参数:
private void Application_Startup(object sender, StartupEventArgs e)
{
string start = " StartParm"; //对应.html页面或.aspx页面的参数里,value对应表达式的左边StartParm
if (!e.InitParams.ContainsKey(start))//如果找不到对应的参数,则返回一个默认启动项
this.RootVisual = new MainPage();
else
{
switch (e.InitParams[start]) //根据参数不同启动不同xaml
{
case "Ellipse":
this.RootVisual = new GridExam();
break;
case "Grid": //此例中传进的StartParm=Grid,因此将启动名称为SilverlightControl1的xaml文件
this.RootVisual = new SilverlightControl1();
break;
case "Rect":
this.RootVisual = new RectExam();
break;
case "Full":
this.RootVisual = new Fullscreen();
break;
default:
this.RootVisual = new MainPage();
break;
}
}
}
=======================================================
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/SilverlightApplication1.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.50826.0" />
<param name="autoUpgrade" value="true" />
<param name="InitParams" value="SysTag=OA,IsSSO=false,SL_URL=http://192.168.0.72:93,Service_URL=http://192.168.0.72:92,Pub_Service_Url=http://192.168.0.72" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
private void Application_Startup(object sender, StartupEventArgs e)
{
// 汉化
try
{
DevExpress.Xpf.Controls.Localization.AgUploadControlLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfControlsAgUploadLocalizationCHS();
DevExpress.Xpf.Controls.Localization.BookLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfControlsBookLocalizationCHS();
DevExpress.Xpf.Core.Localization.TabControlLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfCoreLocalizationCHS();
DevExpress.Xpf.Editors.EditorLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfEditorsLocalizationCHS();
DevExpress.Xpf.Docking.Base.DockingLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfDockingLocalizationCHS();
DevExpress.Xpf.Grid.GridControlLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfGridLocalizationCHS();
DevExpress.Xpf.Printing.PrintingLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfPrintingLocalizationCHS();
//DevExpress.Xpf.NavBar.NavBarLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfNavBarLocalizationCHS();
//DevExpress.Xpf.Ribbon.RibbonControlLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfRibbonLocalizationCHS();
//DevExpress.Xpf.RichEdit.Localization.XpfRichEditLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfRichEditLocalizationCHS();
// DevExpress.XtraRichEdit.Localization.XtraRichEditLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXtraRichEditLocalizationCHS();
// DevExpress.XtraSpellChecker.Localization.SpellCheckerLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfSpellCheckerLocalizationCHS();
}
catch { }
// 设置参数
if (e.InitParams != null)
{
foreach (var item in e.InitParams)
{
switch (item.Key)
{
case "SL_URL":
Initialize.SLURL = item.Value.TrimEnd('/') + "/";
ServiceHelper.ImgUrl = item.Value.TrimEnd('/') + "/";
break;
case "Service_URL":
{
OA.PubUnit.ServiceHelper.BaseUrl = item.Value.TrimEnd('/') + '/';
Initialize.ServiceURL = item.Value.TrimEnd('/') + '/';
}
break;
case "Pub_Service_Url":
Initialize.PubServiceURL = item.Value.TrimEnd('/') + '/';
break;
case "SysTag":
Initialize.LoginSysTagName = item.Value.Trim();
break;
case "IsSSO":
bool resutl = false;
bool.TryParse(item.Value, out resutl);
Initialize.IsSSO = resutl;
break;
}
}
}
// 启动
if (Initialize.IsSSO)//单点登录
{
viewModel.SSOLoginValidateCommand.Execute(null);
viewModel.SSOLoginValidateComplateCommand += (s, ent) =>
{
bool isSSOLogin = false;
bool.TryParse((s + ""), out isSSOLogin);
if (isSSOLogin)
{
Initialize.IsComplateSSO = true;
this.RootVisual = new SkipPage();
}
else
{
Initialize.IsComplateSSO = false;
this.RootVisual = new Login();
}
};
}
else
{
this.RootVisual = new Login();
}
}