using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Drawing.Design; using System.Windows.Forms; namespace DevComponents.DotNetBar.Charts.Style { /// /// Represents a AxisStripeVisualStyle. /// [TypeConverter(typeof(VisualStylesConverter))] public class AxisStripeVisualStyle : BaseVisualStyle { #region Private variables private Background _Background; #endregion #region Public properties #region Background /// /// Gets or sets the style background. /// [Description("Indicates the style background")] public Background Background { get { if (_Background == null) { _Background = Background.Empty; UpdateChangeHandler(null, _Background); } return (_Background); } set { if (_Background != value) { UpdateChangeHandler(_Background, value); _Background = value; OnPropertyChangedEx("Background", VisualChangeType.Render); } } } /// /// Gets whether property should be serialized. /// [EditorBrowsable(EditorBrowsableState.Never)] private bool ShouldSerializeBackground() { return (_Background != null && _Background.IsEmpty == false); } /// /// Resets property to its default value. /// [EditorBrowsable(EditorBrowsableState.Never)] private void ResetBackground() { Background = null; } #endregion #region IsEmpty /// /// Gets whether the style is logically Empty. /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] [Description("Gets whether the style is logically Empty.")] public override bool IsEmpty { get { return ((_Background == null || _Background.IsEmpty == true) && (base.IsEmpty == true)); } } #endregion #endregion #region ApplyStyle /// /// Applies the style to instance of this style. /// /// Style to apply. public void ApplyStyle(AxisStripeVisualStyle style) { if (style != null) { base.ApplyStyle(style); if (style._Background != null && style._Background.IsEmpty == false) Background = style._Background.Copy(); } } #endregion #region Copy /// /// Returns the copy of the style. /// /// Copy of the style. public new AxisStripeVisualStyle Copy() { AxisStripeVisualStyle style = new AxisStripeVisualStyle(); CopyTo(style); return (style); } #endregion #region CopyTo /// /// Returns the copy of the style. /// /// Copy of the style. public void CopyTo(AxisStripeVisualStyle style) { base.CopyTo(style); style.Background = (_Background != null) ? _Background.Copy() : null; } #endregion #region GetSerialData internal override SerialElementCollection GetSerialData(string serialName) { SerialElementCollection sec = new SerialElementCollection(); if (serialName != null) { if (serialName.Equals("") == true) serialName = "AxisStripeVisualStyle"; sec.AddStartElement(serialName); } if (_Background != null && _Background.IsEmpty == false) sec.AddElement(_Background.GetSerialData("Background")); sec.AddElement(base.GetSerialData(null)); if (serialName != null) sec.AddEndElement(serialName); return (sec); } #endregion #region PutSerialData #region ProcessCollection internal override void ProcessCollection(SerialElement se) { SerialElementCollection sec = se.Sec; switch (se.Name) { case "Background": sec.PutSerialData(Background); break; default: base.ProcessCollection(se); break; } } #endregion #endregion #region IDisposable /// /// Dispose /// public override void Dispose() { Background = null; base.Dispose(); } #endregion } }