public WebBrowserModule(IApplicationContext container, IPortal portal, IDsConfigurationSection dsconfig, IShell shell, ILoadingManage loadingManage, IDsEnvironment dsEnvironment, IRegionManager regionManager , IEventAggregator eventAggregator, ILoggerFacade logger) : base(container, dsconfig) { AddinPath = base.AddinInfo.AddinPath.Substring(0, base.AddinInfo.AddinPath.LastIndexOf('\\')); EventAggregator = eventAggregator; Container = base.Container; UIRegionManager = regionManager; MainWindow = shell; portaldata = portal; DsConfiguration = dsconfig; Logger = logger; DsEnvironment = dsEnvironment; DsAddinConfig = base.CurrentAddinConfiguration.GetSection("ds/base") as IDsAddinConfigurationSection; string Language = string.Empty; var LanguagePar = DsConfiguration.Params["Language"]; if (LanguagePar != null) { Language = LanguagePar.Value; } // CefManager.Strat(); string dxcx = (new DS.AFP.Common.Core.ResManager()).GetResource("DS.AFP.WebBrowser", "Close").ToString(); }
/// <summary> /// 初始化环境参数,默认宿主在WPF上运行 /// </summary> protected virtual void ConfigureEnvironment() { Environment = new DsEnvironment() { EnvironmentType = EnvironmentType.WPF }; }
/// <summary> /// 初始化环境参数 /// </summary> /// <param name="dsConfig"></param> /// <param name="assemblyFullName"></param> private void InitializationDsEnvironment(IDsConfigurationSection dsConfig, string assemblyFullName) { //#if DEBUG // Debugger.Launch(); //#endif Console.WriteLine("InitializationDsEnvironment:{0},{1}".FormatString(dsConfig.ToString(), assemblyFullName)); try { //var server; IDsEnvironment de = ParentContaioner.GetObject <IDsEnvironment>(); IList <ModuleConfigurationElement> server = (from ModuleConfigurationElement me in dsConfig.Modules where me.ModuleType.EndsWith(assemblyFullName) select me).ToList <ModuleConfigurationElement>(); Console.WriteLine("Modules:{0},server count:{0}".FormatString(dsConfig.Modules.Count, server.Count)); ModuleConfigurationElement mce = server.FirstOrDefault(); this.AddinInfo = new AddinInfo() { AddinAssemblyName = assemblyFullName, AddinNameSpace = mce.AssemblyFile.Substring(mce.AssemblyFile.LastIndexOf('/') + 1).Replace(".dll", ""), AddinName = mce.ModuleName, ConfigurationFilePath = ConfigurationFileHelper.GetAddinConfigurationFilePath(mce.AssemblyFile), AddinConfigurationEle = mce, AddinPath = PathHelper.GetFullPath(mce.AssemblyFile) }; if (de.AddinInfos.ContainsKey(AddinInfo.AddinName)) { AddinInfo addin = de.AddinInfos[AddinInfo.AddinName]; addin.ConfigurationFilePath = this.AddinInfo.ConfigurationFilePath; addin.AddinConfigurationEle = this.AddinInfo.AddinConfigurationEle; addin.AddinPath = this.AddinInfo.AddinPath; //throw new Exception("DsEnvironment中注册AddinName失败,原因是AddinName作为键值重复!"); } else { de.AddinInfos.Add(mce.ModuleName, AddinInfo); } }catch (Exception ex) { Console.WriteLine("InitializationDsEnvironment异常:{0}".FormatString(ex.StackTrace.ToString())); throw new Exception("InitializationDsEnvironment异常。", ex); } }
public MainWindow(IDsEnvironment dsEnvironment, IDsConfigurationSection dsconfig) { InitializeComponent(); dsNotifications.Top = SystemParameters.WorkArea.Height - topOffset; dsNotifications.Left = SystemParameters.WorkArea.Left + SystemParameters.WorkArea.Width - leftOffset; DsEnvironment = dsEnvironment; /////这里是在初始化加载控件之前就已经做了,故使用配置的方式进行加载 ////1、创建默认主题(默认情况下是DeepBlue) if (dsconfig.Themes.Count > 0) { foreach (ThemeElement item in dsconfig.Themes) { ThemeManage.CurrentTheme = item.Name; break; } } System.Windows.Application.Current.Resources.MergedDictionaries.Clear(); ////2、加载控件的样式 foreach (ModuleConfigurationElement module in dsconfig.Modules) { string assemblyfile = module.AssemblyFile.Substring(module.AssemblyFile.LastIndexOf('/') + 1); string path = assemblyfile.Substring(0, assemblyfile.LastIndexOf('.')); ThemeManage.EnsureApplicationResources(ThemeManage.CurrentTheme, path); } //////这部分代码怎么实现的问题---gefx //if (dsEnvironment.AddinInfos == null || dsEnvironment.AddinInfos.Count <= 0) // DsEnvironment = ParentContaioner.GetObject<IDsEnvironment>(); //foreach (AddinInfo addininfo in DsEnvironment.AddinInfos.Values) //{ // ////这里又有一个问题就是命名空间要更程序集的名称对应,不然的话就需要截取字符串的形式啦!! // string assemblyname = addininfo.AddinNameSpace; // ThemeManage.EnsureApplicationResources(ThemeManage.CurrentTheme, assemblyname); //} #region Debug //base.SetWindowTheme("DeepBlue", "DS.AFP.UIFramework"); #endregion App.iconMouseEvent += App_iconMouseEvent; FullScreenManager.RepairWpfWindowFullScreenBehavior(this); }