/// <summary> /// For this StyleClass, merge in a StyleClass with a higher precedence /// </summary> /// <param name="moreRelevantStyleClass">The more relevant StyleClass</param> /// <param name="canOverwrite">Indicates whether styles of the same selector should override or be ignored</param> public void Merge(StyleClass moreRelevantStyleClass, bool canOverwrite) { foreach (var item in moreRelevantStyleClass.Attributes) { if (!Attributes.ContainsKey(item.Key)) { Attributes.Add(item.Key, item.Value); continue; } if (item.Value.Contains("!important")) { Attributes[item.Key] = item.Value; continue; } if (canOverwrite) { if (Attributes[item.Key].Contains("!important") && !item.Value.Contains("!important")) { continue; } Attributes[item.Key] = item.Value; } } }
public StyleClass(StyleClass sc) { Attributes = sc.Attributes.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); Selector = sc.Selector; }