コード例 #1
0
        /// <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;
        }
コード例 #2
0
        internal ExcelDrawingThemeColorManager(XmlNamespaceManager nameSpaceManager, XmlNode topNode, string path, string[] schemaNodeOrder, Action initMethod = null)
        {
            _nameSpaceManager = nameSpaceManager;
            _topNode          = topNode;
            _path             = path;
            _initMethod       = initMethod;
            _pathNode         = GetPathNode();
            _schemaNodeOrder  = schemaNodeOrder;
            if (_pathNode == null)
            {
                return;
            }

            if (IsTopNodeColorNode(_topNode))
            {
                _colorNode = _pathNode;
            }
            else
            {
                _colorNode = _pathNode.FirstChild;
            }

            if (_colorNode == null)
            {
                return;
            }

            switch (_colorNode.LocalName)
            {
            case "sysClr":
                ColorType   = eDrawingColorType.System;
                SystemColor = new ExcelDrawingSystemColor(_nameSpaceManager, _pathNode.FirstChild);
                break;

            case "scrgbClr":
                ColorType          = eDrawingColorType.RgbPercentage;
                RgbPercentageColor = new ExcelDrawingRgbPercentageColor(_nameSpaceManager, _pathNode.FirstChild);
                break;

            case "hslClr":
                ColorType = eDrawingColorType.Hsl;
                HslColor  = new ExcelDrawingHslColor(_nameSpaceManager, _pathNode.FirstChild);
                break;

            case "prstClr":
                ColorType   = eDrawingColorType.Preset;
                PresetColor = new ExcelDrawingPresetColor(_nameSpaceManager, _pathNode.FirstChild);
                break;

            case "srgbClr":
                ColorType = eDrawingColorType.Rgb;
                RgbColor  = new ExcelDrawingRgbColor(_nameSpaceManager, _pathNode.FirstChild);
                break;

            default:
                ColorType = eDrawingColorType.None;
                break;
            }
        }
コード例 #3
0
 /// <summary>
 /// Sets a system color
 /// </summary>
 /// <param name="systemColor">The colors</param>
 public void SetSystemColor(eSystemColor systemColor)
 {
     ColorType = eDrawingColorType.System;
     ResetColors(ExcelDrawingSystemColor.NodeName);
     SystemColor = new ExcelDrawingSystemColor(_nameSpaceManager, _colorNode)
     {
         Color = systemColor
     };
 }