public static void SetLanguage(string language) { var dictionaryList = Current.Resources.MergedDictionaries .Select(res => (ResourceInclude)res) .ToList(); var resDictName = string.Format(@"Strings.{0}.axaml", language); var resDict = dictionaryList .FirstOrDefault(d => d.Source !.OriginalString.Contains(resDictName)); if (resDict == null) { resDict = dictionaryList.FirstOrDefault(d => d.Source !.OriginalString.Contains("Strings.axaml")); } if (resDict != null) { Current.Resources.MergedDictionaries.Remove(resDict); Current.Resources.MergedDictionaries.Add(resDict); } }
public static void SetTheme() { var light = Current.Resources.MergedDictionaries .Select(res => (ResourceInclude)res) .FirstOrDefault(d => d.Source !.OriginalString.Contains("LightTheme")); var dark = Current.Resources.MergedDictionaries .Select(res => (ResourceInclude)res) .FirstOrDefault(d => d.Source !.OriginalString.Contains("DarkTheme")); if (Core.Util.Preferences.Default.Theme == 0) { Current.Resources.MergedDictionaries.Remove(light); Current.Resources.MergedDictionaries.Add(light); } else { Current.Resources.MergedDictionaries.Remove(dark); Current.Resources.MergedDictionaries.Add(dark); } ThemeManager.LoadTheme(); }
/// <summary> /// Evaluates the binding. /// </summary> public object Evaluate(Controls.DotvvmBindableObject control, DotvvmProperty property) { if (Delegate != null) { return(ExecDelegate(control, true)); } if (!OriginalString.Contains(".")) { throw new Exception("Invalid resource name! Use Namespace.ResourceType.ResourceKey!"); } // parse expression var expressionText = OriginalString.Trim(); var lastDotPosition = expressionText.LastIndexOf(".", StringComparison.Ordinal); var resourceType = expressionText.Substring(0, lastDotPosition); var resourceKey = expressionText.Substring(lastDotPosition + 1); // find the resource manager var resourceManager = cachedResourceManagers.GetOrAdd(resourceType, GetResourceManager); // return the value return(resourceManager.GetString(resourceKey)); }