/// <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;
        }
Ejemplo n.º 2
0
        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);
        }