protected override void PageHead_PageHeadEvent(object sender, PageHeadEventArgs e) { base.PageHead_PageHeadEvent(sender, e); switch (e.Code) { //切换主题 case 100: ThemeInfo themeInfo = e.Data as ThemeInfo; if (themeInfo != null) { ThemeInfo = themeInfo; UMPApp.Session.ThemeInfo = themeInfo; UMPApp.Session.ThemeName = themeInfo.Name; ChangeTheme(); SendThemeChangeMessage(); } break; //切换语言 case 110: LangTypeInfo langType = e.Data as LangTypeInfo; if (langType != null) { LangTypeInfo = langType; UMPApp.Session.LangTypeInfo = langType; UMPApp.Session.LangTypeID = langType.LangID; MyWaiter.Visibility = Visibility.Visible; _mWorker = new BackgroundWorker(); _mWorker.DoWork += (s, de) => UMPApp.InitAllLanguageInfos(); _mWorker.RunWorkerCompleted += (s, re) => { _mWorker.Dispose(); MyWaiter.Visibility = Visibility.Hidden; ChangeLanguage(); PopupCreateTest.ChangeLanguage(); SendLanguageChangeMessage(); }; _mWorker.RunWorkerAsync(); } break; } }
protected override void App_NetPipeEvent(WebRequest webRequest) { base.App_NetPipeEvent(webRequest); Dispatcher.Invoke(new Action(() => { try { var code = webRequest.Code; var strData = webRequest.Data; switch (code) { case (int)RequestCode.SCLanguageChange: LangTypeInfo langTypeInfo = UMPApp.Session.SupportLangTypes.FirstOrDefault(l => l.LangID.ToString() == strData); if (langTypeInfo != null) { LangTypeInfo = langTypeInfo; UMPApp.Session.LangTypeInfo = langTypeInfo; UMPApp.Session.LangTypeID = langTypeInfo.LangID; if (MyWaiter != null) { MyWaiter.Visibility = Visibility.Visible; } _mWorker = new BackgroundWorker(); _mWorker.DoWork += (s, de) => UMPApp.InitAllLanguageInfos(); _mWorker.RunWorkerCompleted += (s, re) => { _mWorker.Dispose(); if (MyWaiter != null) { MyWaiter.Visibility = Visibility.Hidden; } if (PopupCreateTest != null) { PopupCreateTest.ChangeLanguage(); } if (PageHead != null) { PageHead.SessionInfo = UMPApp.Session; PageHead.InitInfo(); } }; _mWorker.RunWorkerAsync(); } break; case (int)RequestCode.SCThemeChange: ThemeInfo themeInfo = UMPApp.Session.SupportThemes.FirstOrDefault(t => t.Name == strData); if (themeInfo != null) { ThemeInfo = themeInfo; UMPApp.Session.ThemeInfo = themeInfo; UMPApp.Session.ThemeName = themeInfo.Name; ChangeTheme(); PageHead.SessionInfo = UMPApp.Session; PageHead.InitInfo(); } break; } } catch (Exception ex) { UMPApp.ShowExceptionMessage(ex.Message); } })); }