private void CopyResourcesFrom(SkinDictionary skinDictionary) { foreach (var keyValuePair in skinDictionary) { AddCore(keyValuePair.Key, CloneValue(keyValuePair.Value)); } }
private SkinDictionary EnsureKey(ThemeResourceKey themeKey) { var keyParts = themeKey.KeyParts; var current = this; for (var i = 0; i < keyParts.Count - 1; i++) { var keyPart = keyParts[i]; SkinDictionary skinDictionary; if (current.Dictionary.TryGetValue(keyPart, out var currentValue) == false) { skinDictionary = new SkinDictionary(); current.AddDictionaryValue(keyPart, skinDictionary); } else { skinDictionary = currentValue as SkinDictionary; if (skinDictionary == null) { throw new InvalidOperationException(); } } current = skinDictionary; } return(current); }
private SkinDictionary ShallowClone() { var clone = new SkinDictionary(); clone.ShallowCopyFrom(this); clone.CopyResourcesFrom(this); return(clone); }
private void ShallowCopyFrom(SkinDictionary skinDictionary) { Key = skinDictionary.Key; DeferredKey = skinDictionary.DeferredKey; BasedOnFlags = skinDictionary.BasedOnFlags; #if INTERACTIVITY_DEBUG Debug = skinDictionary.Debug; #endif }
private static IEnumerator <SkinDictionary> GetChildSkinDictionaryEnumerator(SkinDictionary skinDictionary) { return(skinDictionary.Dictionary.Values.OfType <SkinDictionary>().GetEnumerator()); }