159 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Text;
 | |
| using System.Xml.Serialization;
 | |
| using System.ComponentModel;
 | |
| using System.Drawing;
 | |
| 
 | |
| namespace Volian.Svg.Library
 | |
| {
 | |
| 	public partial class SvgLine : SvgLinePart
 | |
| 	{
 | |
| 		#region ctor
 | |
| 		public SvgLine() { ;}
 | |
| 		public SvgLine(PointF location1, PointF location2, Color lineColor, float lineWidth)
 | |
| 		{
 | |
| 			_X1.Value = location1.X;
 | |
| 			_Y1.Value = location1.Y;
 | |
| 			_X2.Value = location2.X;
 | |
| 			_Y2.Value = location2.Y;
 | |
| 			LineColor = lineColor;
 | |
| 			LineWidth = new SvgMeasurement(lineWidth);
 | |
| 		}
 | |
| 		//XMLElementAttribute(ElementName = "PREFIX", IsNullable = false)
 | |
| 		#endregion
 | |
| 		#region Location1
 | |
| 		private SvgMeasurement _X1 = new SvgMeasurement();
 | |
| 		[XmlIgnore]
 | |
| 		public SvgMeasurement X1
 | |
| 		{
 | |
| 			get { return _X1; }
 | |
| 			set { _X1 = value; }
 | |
| 		}
 | |
| 		[XmlAttribute("x1")]
 | |
| 		[Browsable(false)]
 | |
| 		[EditorBrowsable(EditorBrowsableState.Never)]
 | |
| 		public string X1_XmlSurrogate
 | |
| 		{
 | |
| 			get { return SvgXmlConverter<SvgMeasurement>.GetString(_X1); }
 | |
| 			set { _X1 = SvgXmlConverter<SvgMeasurement>.GetObject(value); }
 | |
| 		}
 | |
| 		private SvgMeasurement _Y1 = new SvgMeasurement();
 | |
| 		[XmlIgnore]
 | |
| 		public SvgMeasurement Y1
 | |
| 		{
 | |
| 			get { return _Y1; }
 | |
| 			set { _Y1 = value; }
 | |
| 		}
 | |
| 		[XmlAttribute("y1")]
 | |
| 		[Browsable(false)]
 | |
| 		[EditorBrowsable(EditorBrowsableState.Never)]
 | |
| 		public string Y1_XmlSurrogate
 | |
| 		{
 | |
| 			get { return SvgXmlConverter<SvgMeasurement>.GetString(_Y1); }
 | |
| 			set { _Y1 = SvgXmlConverter<SvgMeasurement>.GetObject(value); }
 | |
| 		}
 | |
| 		#endregion
 | |
| 		#region Location2
 | |
| 		private SvgMeasurement _X2 = new SvgMeasurement();
 | |
| 		[XmlIgnore]
 | |
| 		public SvgMeasurement X2
 | |
| 		{
 | |
| 			get { return _X2; }
 | |
| 			set { _X2 = value; }
 | |
| 		}
 | |
| 		[XmlAttribute("x2")]
 | |
| 		[Browsable(false)]
 | |
| 		[EditorBrowsable(EditorBrowsableState.Never)]
 | |
| 		public string X2_XmlSurrogate
 | |
| 		{
 | |
| 			get { return SvgXmlConverter<SvgMeasurement>.GetString(_X2); }
 | |
| 			set { _X2 = SvgXmlConverter<SvgMeasurement>.GetObject(value); }
 | |
| 		}
 | |
| 		private SvgMeasurement _Y2 = new SvgMeasurement();
 | |
| 		[XmlIgnore]
 | |
| 		public SvgMeasurement Y2
 | |
| 		{
 | |
| 			get { return _Y2; }
 | |
| 			set { _Y2 = value; }
 | |
| 		}
 | |
| 		[XmlAttribute("y2")]
 | |
| 		[Browsable(false)]
 | |
| 		[EditorBrowsable(EditorBrowsableState.Never)]
 | |
| 		public string Y_XmlSurrogate
 | |
| 		{
 | |
| 			get { return SvgXmlConverter<SvgMeasurement>.GetString(_Y2); }
 | |
| 			set { _Y2 = SvgXmlConverter<SvgMeasurement>.GetObject(value); }
 | |
| 		}
 | |
| 		#endregion
 | |
| 		#region Description
 | |
| 		private string _Description = string.Empty;
 | |
| 		[System.ComponentModel.DefaultValueAttribute("")]
 | |
| 		[XmlElement("desc")]
 | |
| 		public string Description
 | |
| 		{
 | |
| 			get { return _Description; }
 | |
| 			set { _Description = value; }
 | |
| 		}
 | |
| 		#endregion
 | |
| 		#region LineColor
 | |
| 		//protected Color _LineColor = Color.Empty;
 | |
| 		//[XmlIgnoreAttribute()]
 | |
| 		//public Color LineColor
 | |
| 		//{
 | |
| 		//  get { return _LineWidth.Value == 0 ? Color.LightGray : _LineColor == Color.Empty ? Color.Gray : _LineColor; }
 | |
| 		//  set { _LineColor = value; }
 | |
| 		//}
 | |
| 		private Color AdjustColorForWidth(Color myColor, float myWidth)
 | |
| 		{
 | |
| 			if (myWidth > 1F) return myColor;
 | |
| 			//Console.WriteLine("Line Width = {0}, Alpha = {1}", myWidth, Convert.ToInt32(myWidth * 255));
 | |
| 			return Color.FromArgb(Convert.ToInt32(myWidth * 255), myColor);
 | |
| 		}
 | |
| 		// Serializes the 'BackgroundColor' Color to XML.
 | |
| 		//[System.ComponentModel.DefaultValueAttribute("none")]
 | |
| 		//[XmlAttribute("stroke")]
 | |
| 		//public string Stroke
 | |
| 		//{
 | |
| 		//  get { return _LineColor == Color.Empty ? "none" : _LineColor == Color.Black ? "" : ColorTranslator.ToHtml(_LineColor); }
 | |
| 		//  set { _LineColor = (value == "none" ? Color.Empty : (value == "" ? Color.Empty : ColorTranslator.FromHtml(value))); }
 | |
| 		//}
 | |
| 		#endregion
 | |
| 		#region LineWidth
 | |
| 		//private SvgMeasurement GetLineWidth()
 | |
| 		//{
 | |
| 		//  if (_LineWidth.Value == -1) return new SvgMeasurement(1F);// Minimum Strokewidth
 | |
| 		//  if (_LineWidth.Value == 0) return new SvgMeasurement(.01F);// Minimum Strokewidth
 | |
| 		//    if (_LineColor == Color.Empty) return new SvgMeasurement( .01F);// No Color - Minimum Strokewidth
 | |
| 		//    return _LineWidth;
 | |
| 		//}
 | |
| 		//private SvgMeasurement _LineWidth = new SvgMeasurement();
 | |
| 		//[XmlIgnore]
 | |
| 		//public SvgMeasurement LineWidth
 | |
| 		//{
 | |
| 		//  get { return _LineWidth; }
 | |
| 		//  set { _LineWidth = value; }
 | |
| 		//}
 | |
| 		//[XmlAttribute("stroke-width")]
 | |
| 		//[Browsable(false)]
 | |
| 		//[EditorBrowsable(EditorBrowsableState.Never)]
 | |
| 		//public string LineWidth_XmlSurrogate
 | |
| 		//{
 | |
| 		//  get 
 | |
| 		//  {
 | |
| 		//    if (_LineWidth.Value == -1) 
 | |
| 		//      return "none";
 | |
| 		//    return VolianXmlConverter<SvgMeasurement>.GetString(_LineWidth); 
 | |
| 		//  }
 | |
| 		//  set 
 | |
| 		//  {
 | |
| 		//    if (value == "none") 
 | |
| 		//      _LineWidth = VolianXmlConverter<SvgMeasurement>.GetObject("-1");
 | |
| 		//    else
 | |
| 		//      _LineWidth = VolianXmlConverter<SvgMeasurement>.GetObject(value); 
 | |
| 		//  }
 | |
| 		//}
 | |
| 		#endregion
 | |
| 	}
 | |
| }
 |