public override void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            info.AddValue("BackColor", BackColor.ToArgb().ToString());
            info.AddValue("Clip", Clip);
            info.AddValue("GradientMode", Convert.ToInt32(GradientMode).ToString());
            info.AddValue("GradientColor", GradientColor.ToArgb().ToString());
            info.AddValue("DrawGradient", DrawGradient);
            info.AddValue("DrawBorder", DrawBorder);
            info.AddValue("DrawBackground", DrawBackground);
            info.AddValue("Location", Serialize.AddPointF(Location));
            info.AddValue("InternalRectangle", Serialize.AddRectangleF(InternalRectangle));

            if (Label != null)
            {
                info.AddValue("Label", Label);
            }
            if (Image != null)
            {
                info.AddValue("Image", Image);
            }
            if (StencilItem != null)
            {
                info.AddValue("StencilItem", StencilItem);
            }
            if (Rotation != 0)
            {
                info.AddValue("Rotation", Rotation);
            }

            base.GetObjectData(info, context);
        }
        //Implement ISerializable
        public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
        {
            info.AddValue("Key", Key);
            info.AddValue("Redraw", Redraw);
            info.AddValue("BasePath", Serialize.AddPath(mBasePath));
            info.AddValue("BaseSize", Serialize.AddSizeF(BaseSize));
            info.AddValue("BaseInternalRectangle", Serialize.AddRectangleF(BaseInternalRectangle));

            info.AddValue("BorderColor", BorderColor.ToArgb().ToString());
            info.AddValue("BorderStyle", Convert.ToInt32(BorderStyle).ToString());
            info.AddValue("SmoothingMode", Convert.ToInt32(SmoothingMode).ToString());
            info.AddValue("BackColor", BackColor.ToArgb().ToString());
            info.AddValue("GradientColor", GradientColor.ToArgb().ToString());
            info.AddValue("GradientMode", Convert.ToInt32(GradientMode).ToString());
            info.AddValue("DrawGradient", DrawGradient);
            info.AddValue("Options", Convert.ToInt32(Options).ToString());
        }