80 lines
2.2 KiB
C#
80 lines
2.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Drawing;
|
|
using System.ComponentModel;
|
|
|
|
namespace Volian.Svg.Library
|
|
{
|
|
[TypeConverter(typeof(ViewBoxTypeConverter))]
|
|
public class SvgViewBox
|
|
{
|
|
#region ctor
|
|
public SvgViewBox() { ;}
|
|
public SvgViewBox(float x, float y, float width, float height)
|
|
{
|
|
_MyRectangleF = new RectangleF(x, y, width, height);
|
|
}
|
|
public SvgViewBox(string val)
|
|
{
|
|
string[] parms = ((string)val).Split(' ');
|
|
_MyRectangleF = new RectangleF(Convert.ToSingle(parms[0]), Convert.ToSingle(parms[1]), Convert.ToSingle(parms[2]), Convert.ToSingle(parms[3]));
|
|
}
|
|
#endregion
|
|
#region Public Properties
|
|
private RectangleF _MyRectangleF = new RectangleF();
|
|
public float X
|
|
{
|
|
get { return _MyRectangleF.X; }
|
|
set { _MyRectangleF.X = value; }
|
|
}
|
|
public float Y
|
|
{
|
|
get { return _MyRectangleF.Y; }
|
|
set { _MyRectangleF.Y = value; }
|
|
}
|
|
public float Width
|
|
{
|
|
get { return _MyRectangleF.Width; }
|
|
set { _MyRectangleF.Width = value; }
|
|
}
|
|
public float Height
|
|
{
|
|
get { return _MyRectangleF.Height; }
|
|
set { _MyRectangleF.Height = value; }
|
|
}
|
|
#endregion
|
|
#region ToString
|
|
public override string ToString()
|
|
{
|
|
return string.Format("{0} {1} {2} {3}", X, Y, Width, Height);
|
|
}
|
|
#endregion
|
|
}
|
|
public class ViewBoxTypeConverter : ExpandableObjectConverter
|
|
{
|
|
public override bool CanConvertTo(ITypeDescriptorContext context, Type t)
|
|
{
|
|
return t == typeof(String);
|
|
}
|
|
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType)
|
|
{
|
|
if (destType == typeof(string) && value is SvgViewBox)
|
|
{
|
|
return value.ToString();
|
|
}
|
|
return base.ConvertTo(context, culture, value, destType);
|
|
}
|
|
public override bool CanConvertFrom(ITypeDescriptorContext context, Type t)
|
|
{
|
|
return t == typeof(String);
|
|
}
|
|
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object val)
|
|
{
|
|
string[] parms = ((string)val).Split(' ');
|
|
SvgViewBox viewBox = new SvgViewBox(Convert.ToSingle(parms[0]), Convert.ToSingle(parms[1]), Convert.ToSingle(parms[2]), Convert.ToSingle(parms[3]));
|
|
return viewBox;
|
|
}
|
|
}
|
|
}
|