protected override async void OnInitialize() { if (firstLaunch) { firstLaunch = false; //读取json按对象重新保存一次。防止json格式不全 var Setting = await JsonHelper.JsonDeserializeFromFileAsync <SettingObject>(AppManager.SettingPath); await JsonHelper.JsonSerializeAsync(Setting, AppManager.SettingPath); } var config = await JsonHelper.JsonDeserializeFromFileAsync <dynamic>(AppManager.SettingPath); //string descPath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "Res\\setting.desc.json"); var descConfig = await JsonHelper.JsonDeserializeFromFileAsync <dynamic>(AppManager.SettingDescFile); List <dynamic> audioSource = new List <dynamic>(); List <dynamic> displayMonitor = new List <dynamic>(); displayMonitor.Add(new { lanKey = "setting_displayMonitor_default", value = -1 }); audioSource.Add(new { lanKey = "setting_audioSource_mute", value = -1 }); string screenStr = await LanService.Get("setting_screen"); for (int i = 0; i < System.Windows.Forms.Screen.AllScreens.Length; i++) { displayMonitor.Add(new { lan = string.Format($"{screenStr} {i + 1}"), value = i }); audioSource.Add(new { lan = string.Format($"{screenStr} {i + 1}"), value = i }); } _jcrService.InjectDescObjs("$AudioSource", audioSource); _jcrService.InjectDescObjs("$DisplayMonitor", displayMonitor); JsonConfierViewModel = _jcrService.GetVM(config, descConfig); base.OnInitialize(); }
private async void MainWindow_Loaded(object sender, RoutedEventArgs e) { var data = await JsonHelper.JsonDeserializeFromFileAsync <object>(path); var defaultData = await JsonHelper.JsonDeserializeFromFileAsync <object>(defaultPath); var dataDesc = await JsonHelper.JsonDeserializeFromFileAsync <object>(descPath); List <dynamic> extraDescObjs = new List <dynamic>(); extraDescObjs.Add(new { lan = string.Format($"禁用"), value = -1 }); for (int i = 0; i < System.Windows.Forms.Screen.AllScreens.Length; i++) { extraDescObjs.Add(new { lan = string.Format($"屏幕{i}"), value = i }); } service.InjectDescObjs("$screen", extraDescObjs); data = JCrService.CheckDefault(data as JObject, defaultData as JObject); control = service.GetView(data as JObject, dataDesc as JObject); control.BorderBrush = new SolidColorBrush(Colors.Red); grid.Children.Insert(0, control); }
protected override async void OnInitialize() { if (firstLaunch) { firstLaunch = false; //读取json按对象重新保存一次。防止json格式不全 var Setting = await JsonHelper.JsonDeserializeFromFileAsync <SettingObject>(AppManager.SettingPath); await JsonHelper.JsonSerializeAsync(Setting, AppManager.SettingPath); } var config = await JsonHelper.JsonDeserializeFromFileAsync <dynamic>(AppManager.SettingPath); //string descPath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "Res\\setting.desc.json"); var descConfig = await JsonHelper.JsonDeserializeFromFileAsync <dynamic>(AppManager.SettingDescFile); List <dynamic> audioSource = new List <dynamic>(); List <dynamic> displayMonitor = new List <dynamic>(); displayMonitor.Add(new { lanKey = "setting_displayMonitor_default", value = -1 }); audioSource.Add(new { lanKey = "setting_audioSource_mute", value = -1 }); string screenStr = await LanService.Get("setting_screen"); for (int i = 0; i < System.Windows.Forms.Screen.AllScreens.Length; i++) { displayMonitor.Add(new { lan = string.Format($"{screenStr} {i + 1}"), value = i }); audioSource.Add(new { lan = string.Format($"{screenStr} {i + 1}"), value = i }); } _jcrService.InjectDescObjs("$AudioSource", audioSource); _jcrService.InjectDescObjs("$DisplayMonitor", displayMonitor); //多语言 DirectoryInfo languageFilesDir = new DirectoryInfo(AppManager.GetLangaugesFilePath()); var files = languageFilesDir.GetFiles("*.json"); if (files != null) { List <dynamic> languages = new List <dynamic>(); foreach (var file in files) { string cultureName = file.Name.Replace(file.Extension, ""); string text = await LanService.Get("language", cultureName); languages.Add(new { lan = text, value = cultureName }); } _jcrService.InjectDescObjs("$languages", languages); } JsonConfierViewModel = _jcrService.GetVM(config, descConfig); base.OnInitialize(); }