/// <summary> /// Reset the color objects /// </summary> /// <param name="newNodeName">The new color node name</param> internal protected virtual void ResetColors(string newNodeName) { if (_colorNode == null) { var xml = XmlHelperFactory.Create(_nameSpaceManager, _topNode); xml.SchemaNodeOrder = _schemaNodeOrder; var colorPath = string.IsNullOrEmpty(_path) ? newNodeName : _path + "/" + newNodeName; _colorNode = xml.CreateNode(colorPath); _initMethod?.Invoke(); } if (_colorNode.Name == newNodeName) { return; } else { _transforms = null; ChangeType(newNodeName); } RgbColor = null; RgbPercentageColor = null; HslColor = null; PresetColor = null; SystemColor = null; }
internal void ApplyNewColor(ExcelDrawingColorManager newColor, ExcelColorTransformCollection variation = null) { ColorType = newColor.ColorType; switch (newColor.ColorType) { case eDrawingColorType.Rgb: SetRgbColor(newColor.RgbColor.Color); break; case eDrawingColorType.RgbPercentage: SetRgbPercentageColor(newColor.RgbPercentageColor.RedPercentage, newColor.RgbPercentageColor.GreenPercentage, newColor.RgbPercentageColor.BluePercentage); break; case eDrawingColorType.Hsl: SetHslColor(newColor.HslColor.Hue, newColor.HslColor.Saturation, newColor.HslColor.Luminance); break; case eDrawingColorType.Preset: SetPresetColor(newColor.PresetColor.Color); break; case eDrawingColorType.System: SetSystemColor(newColor.SystemColor.Color); break; case eDrawingColorType.Scheme: SetSchemeColor(newColor.SchemeColor.Color); break; } //Variations should be added first, so temporary store the transforms and add the again var trans = Transforms.Where(x => ((ISource)x)._fromStyleTemplate == false).ToList(); Transforms.Clear(); if (variation != null) { ApplyNewTransform(variation); } ApplyNewTransform(trans); ApplyNewTransform(newColor.Transforms, true); }