internal SLBorderProperties Clone()
        {
            var bp = new SLBorderProperties(listThemeColors, listIndexedColors);

            bp.HasColor       = HasColor;
            bp.clrReal        = clrReal.Clone();
            bp.HasBorderStyle = HasBorderStyle;
            bp.vBorderStyle   = vBorderStyle;

            return(bp);
        }
        internal static string WriteToXmlTag(string BorderTag, SLBorderProperties bp)
        {
            var sb = new StringBuilder();

            sb.AppendFormat("<x:{0}", BorderTag);
            if (bp.HasBorderStyle)
            {
                sb.AppendFormat(" style=\"{0}\"", bp.GetBorderStyleAttribute(bp.BorderStyle));
            }

            if (bp.HasColor)
            {
                sb.Append("><x:color");
                if (bp.clrReal.Auto != null)
                {
                    sb.AppendFormat(" auto=\"{0}\"", bp.clrReal.Auto.Value ? "1" : "0");
                }
                if (bp.clrReal.Indexed != null)
                {
                    sb.AppendFormat(" indexed=\"{0}\"", bp.clrReal.Indexed.Value);
                }
                if (bp.clrReal.Rgb != null)
                {
                    sb.AppendFormat(" rgb=\"{0}\"", bp.clrReal.Rgb);
                }
                if (bp.clrReal.Theme != null)
                {
                    sb.AppendFormat(" theme=\"{0}\"", bp.clrReal.Theme.Value);
                }
                if (bp.clrReal.Tint != null)
                {
                    sb.AppendFormat(" tint=\"{0}\"", bp.clrReal.Tint.Value);
                }
                sb.AppendFormat(" /></x:{0}>", BorderTag);
            }
            else
            {
                sb.Append(" />");
            }

            return(sb.ToString());
        }
        /// <summary>
        ///     Form SLBorder from DocumentFormat.OpenXml.Spreadsheet.Border class.
        /// </summary>
        /// <param name="border">The source DocumentFormat.OpenXml.Spreadsheet.Border class.</param>
        public void FromBorder(Border border)
        {
            SetAllNull();

            if (border.LeftBorder != null)
            {
                HasLeftBorder = true;
                bpLeftBorder  = new SLBorderProperties(listThemeColors, listIndexedColors);
                bpLeftBorder.FromBorderPropertiesType(border.LeftBorder);
            }

            if (border.RightBorder != null)
            {
                HasRightBorder = true;
                bpRightBorder  = new SLBorderProperties(listThemeColors, listIndexedColors);
                bpRightBorder.FromBorderPropertiesType(border.RightBorder);
            }

            if (border.TopBorder != null)
            {
                HasTopBorder = true;
                bpTopBorder  = new SLBorderProperties(listThemeColors, listIndexedColors);
                bpTopBorder.FromBorderPropertiesType(border.TopBorder);
            }

            if (border.BottomBorder != null)
            {
                HasBottomBorder = true;
                bpBottomBorder  = new SLBorderProperties(listThemeColors, listIndexedColors);
                bpBottomBorder.FromBorderPropertiesType(border.BottomBorder);
            }

            if (border.DiagonalBorder != null)
            {
                HasDiagonalBorder = true;
                bpDiagonalBorder  = new SLBorderProperties(listThemeColors, listIndexedColors);
                bpDiagonalBorder.FromBorderPropertiesType(border.DiagonalBorder);
            }

            if (border.VerticalBorder != null)
            {
                HasVerticalBorder = true;
                bpVerticalBorder  = new SLBorderProperties(listThemeColors, listIndexedColors);
                bpVerticalBorder.FromBorderPropertiesType(border.VerticalBorder);
            }

            if (border.HorizontalBorder != null)
            {
                HasHorizontalBorder = true;
                bpHorizontalBorder  = new SLBorderProperties(listThemeColors, listIndexedColors);
                bpHorizontalBorder.FromBorderPropertiesType(border.HorizontalBorder);
            }

            if (border.DiagonalUp != null)
            {
                DiagonalUp = border.DiagonalUp.Value;
            }
            else
            {
                DiagonalUp = null;
            }

            if (border.DiagonalDown != null)
            {
                DiagonalDown = border.DiagonalDown.Value;
            }
            else
            {
                DiagonalDown = null;
            }

            if (border.Outline != null)
            {
                Outline = border.Outline.Value;
            }
            else
            {
                Outline = null;
            }

            Sync();
        }
 /// <summary>
 ///     Remove any existing horizontal border.
 /// </summary>
 public void RemoveHorizontalBorder()
 {
     bpHorizontalBorder  = new SLBorderProperties(listThemeColors, listIndexedColors);
     HasHorizontalBorder = false;
 }
 /// <summary>
 ///     Remove any existing vertical border.
 /// </summary>
 public void RemoveVerticalBorder()
 {
     bpVerticalBorder  = new SLBorderProperties(listThemeColors, listIndexedColors);
     HasVerticalBorder = false;
 }
 /// <summary>
 ///     Remove any existing diagonal border.
 /// </summary>
 public void RemoveDiagonalBorder()
 {
     bpDiagonalBorder  = new SLBorderProperties(listThemeColors, listIndexedColors);
     HasDiagonalBorder = false;
 }
 /// <summary>
 ///     Remove any existing bottom border.
 /// </summary>
 public void RemoveBottomBorder()
 {
     bpBottomBorder  = new SLBorderProperties(listThemeColors, listIndexedColors);
     HasBottomBorder = false;
 }
 /// <summary>
 ///     Remove any existing right border.
 /// </summary>
 public void RemoveRightBorder()
 {
     bpRightBorder  = new SLBorderProperties(listThemeColors, listIndexedColors);
     HasRightBorder = false;
 }