98 lines
2.7 KiB
C#
98 lines
2.7 KiB
C#
using System.Collections.Generic;
|
|
using System.Xml.Serialization;
|
|
using System.ComponentModel;
|
|
|
|
namespace Volian.Svg.Library
|
|
{
|
|
[XmlRoot("svg")]
|
|
public partial class Svg : SvgGroup
|
|
{
|
|
private static System.Drawing.PointF _AbsoluteOffset;
|
|
public static System.Drawing.PointF AbsoluteOffset
|
|
{
|
|
get { return Svg._AbsoluteOffset; }
|
|
set { Svg._AbsoluteOffset = value; }
|
|
}
|
|
private static System.Drawing.Color _OverrrideColor = System.Drawing.Color.Empty;
|
|
public static System.Drawing.Color OverrideColor
|
|
{
|
|
get { return Svg._OverrrideColor; }
|
|
set { Svg._OverrrideColor = value; }
|
|
}
|
|
#region XML Serializer Namespaces
|
|
private XmlSerializerNamespaces _Namespaces = null;
|
|
[XmlNamespaceDeclarations]
|
|
public XmlSerializerNamespaces Namespaces
|
|
{
|
|
get
|
|
{
|
|
if (_Namespaces == null)
|
|
{
|
|
_Namespaces = new XmlSerializerNamespaces();
|
|
_Namespaces.Add("xlink", "http://www.w3.org/1999/xlink");
|
|
}
|
|
return _Namespaces;
|
|
}
|
|
set { _Namespaces = value; }
|
|
}
|
|
#endregion
|
|
#region Width
|
|
[XmlIgnore]
|
|
public SvgMeasurement Width { get; set; } = new SvgMeasurement();
|
|
[System.ComponentModel.DefaultValueAttribute("0")]
|
|
[XmlAttribute("width")]
|
|
[Browsable(false)]
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public string Width_XmlSurrogate
|
|
{
|
|
get { return SvgXmlConverter<SvgMeasurement>.GetString(Width); }
|
|
set { Width = SvgXmlConverter<SvgMeasurement>.GetObject(value); }
|
|
}
|
|
#endregion
|
|
#region Height
|
|
[XmlIgnore]
|
|
public SvgMeasurement Height { get; set; } = new SvgMeasurement();
|
|
[System.ComponentModel.DefaultValueAttribute("0")]
|
|
[XmlAttribute("height")]
|
|
[Browsable(false)]
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public string Height_XmlSurrogate
|
|
{
|
|
get { return SvgXmlConverter<SvgMeasurement>.GetString(Height); }
|
|
set { Height = SvgXmlConverter<SvgMeasurement>.GetObject(value); }
|
|
}
|
|
#endregion
|
|
#region ViewBox
|
|
[XmlIgnore]
|
|
public SvgViewBox ViewBox { get; set; } = new SvgViewBox("0 0 0 0");
|
|
[System.ComponentModel.DefaultValueAttribute("0 0 0 0")]
|
|
[XmlAttribute("viewBox")]
|
|
[Browsable(false)]
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public string SVGViewBox_XmlSurrogate
|
|
{
|
|
get { return SvgXmlConverter<SvgViewBox>.GetString(ViewBox); }
|
|
set { ViewBox = SvgXmlConverter<SvgViewBox>.GetObject(value); }
|
|
}
|
|
#endregion
|
|
#region Part Lookup
|
|
private Dictionary<string, SvgPart> _LookUp;
|
|
[XmlIgnore]
|
|
internal Dictionary<string, SvgPart> LookUp
|
|
{
|
|
get
|
|
{
|
|
if (_LookUp == null)
|
|
{
|
|
_LookUp = new Dictionary<string, SvgPart>();
|
|
AddLookup(_LookUp);
|
|
}
|
|
return _LookUp;
|
|
}
|
|
}
|
|
public SvgPart this[string id]
|
|
{ get { return LookUp[id]; } }
|
|
#endregion
|
|
}
|
|
}
|