示例#1
0
        /// <summary>
        /// Applique le changement de thème.
        /// </summary>
        /// <param name="oldTheme">l'ancien thème.</param>
        /// <param name="newTheme">le nouveau thème.</param>
        private void ApplyNewTheme(IThemeDescription oldTheme, IThemeDescription newTheme)
        {
            // Supprimer les dictionnaires du thème actuel
            if (_currentResourceDictionaries != null && _currentResourceDictionaries.Any())
            {
                foreach (var dic in _currentResourceDictionaries)
                {
                    this.Resources.MergedDictionaries.Remove(dic);
                }
            }

            _currentResourceDictionaries = newTheme.GetResourceDictionaries().ToArray();

            // Ajouter les dictionnaires du nouveau thème
            foreach (var dic in _currentResourceDictionaries)
            {
                if (!this.Resources.MergedDictionaries.Any(rd => rd.Source == dic.Source))
                {
                    this.Resources.MergedDictionaries.Add(dic);
                }
            }
        }
示例#2
0
 /// <summary>
 /// Initialise une nouvelle instance de la classe <see cref="ThemeChangedEvent"/>.
 /// </summary>
 /// <param name="sender">La source de l'évènement.</param>
 /// <param name="oldTheme">L'ancien thème.</param>
 /// <param name="newTheme">Le nouveau thème.</param>
 public ThemeChangedEvent(object sender, IThemeDescription oldTheme, IThemeDescription newTheme)
     : base(sender)
 {
     OldTheme = oldTheme;
     NewTheme = newTheme;
 }