Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        /// <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));
        }