168 lines
4.4 KiB
C#
168 lines
4.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Drawing;
|
|
using System.ComponentModel;
|
|
using System.Xml.Serialization;
|
|
|
|
namespace Volian.Svg.Library
|
|
{
|
|
public class SvgLineSettings
|
|
{
|
|
#region ctor
|
|
public SvgLineSettings() { ;}
|
|
public SvgLineSettings(Color myColor, SvgMeasurement myWidth)
|
|
{
|
|
_Stroke = ColorTranslator.ToHtml(myColor);
|
|
_StrokeWidth = myWidth.ToString();
|
|
}
|
|
//public SvgLineSettings(string myStroke, string myStrokeWidth)
|
|
//{
|
|
// _Stroke = myStroke;
|
|
// _StrokeWidth = myStrokeWidth;
|
|
//}
|
|
#endregion
|
|
#region Inheritance
|
|
private SvgLineSettings _MyParentsSettings = null;
|
|
public SvgLineSettings MyParentsSettings
|
|
{
|
|
get { return _MyParentsSettings; }
|
|
set
|
|
{
|
|
_MyParentsSettings = value;
|
|
}
|
|
}
|
|
#endregion
|
|
#region Internal Inherited Properties
|
|
protected string InheritedStroke
|
|
{
|
|
get
|
|
{
|
|
// Stroke = "", "0" - Default, otherwise the value
|
|
if (_Stroke != "" && _Stroke != "0") return _Stroke; // Current Value
|
|
if (_MyParentsSettings != null) return _MyParentsSettings.InheritedStroke;// Inherited
|
|
return "None"; // Default
|
|
}
|
|
}
|
|
protected string InheritedLineWidth
|
|
{
|
|
get
|
|
{
|
|
// StrokeWidth = "", "none" - Default, otherwise the value
|
|
if (_StrokeWidth != "" && _StrokeWidth != "none") return _StrokeWidth; // Current Value
|
|
if (_MyParentsSettings != null) return _MyParentsSettings.InheritedLineWidth; // Inherited
|
|
return "1PX"; // Default
|
|
}
|
|
}
|
|
//protected string InheritedOutlineWidth
|
|
//{
|
|
// get
|
|
// {
|
|
// // StrokeWidth = "", "none" - Default, otherwise the value
|
|
// if (_StrokeWidth != "" && _StrokeWidth.ToLower() != "none") return _StrokeWidth; // Current Value
|
|
// if (_MyParent != null) return _MyParent.InheritedLineWidth; // Inherited
|
|
// return "1PX"; // Default
|
|
// }
|
|
//}
|
|
#endregion
|
|
#region Inherited Values
|
|
public SvgMeasurement LineWidth
|
|
{
|
|
get
|
|
{
|
|
// Stroke = "None" - Light, otherwise the value
|
|
// StrokeWidth = "None" Light, otherwise the value
|
|
string myStroke = InheritedStroke;
|
|
string myWidth = InheritedLineWidth;
|
|
//if (myStroke.ToLower() == "none" || myWidth.ToLower() == "none") // Light
|
|
// return new SvgMeasurement(.001F, E_MeasurementUnits.PX);
|
|
SvgMeasurement myMeasurement = new SvgMeasurement(myWidth);
|
|
//myMeasurement.Value *= _Scale;
|
|
return myMeasurement;
|
|
}
|
|
set
|
|
{
|
|
_StrokeWidth = value.ToString();
|
|
}
|
|
}
|
|
public SvgMeasurement OutlineWidth
|
|
{
|
|
get
|
|
{
|
|
// Stroke = "None" - Eliminate, otherwise the value
|
|
// StrokeWidth = "0" Eliminate, otherwise the value
|
|
string myStroke = InheritedStroke;
|
|
//string myWidth = InheritedOutlineWidth;
|
|
string myWidth = InheritedLineWidth;
|
|
if (myStroke.ToLower() == "none" || myWidth == "0") // Eliminate
|
|
return new SvgMeasurement(0, E_MeasurementUnits.PX);
|
|
SvgMeasurement myMeasurement = new SvgMeasurement(myWidth);
|
|
//myMeasurement.Value *= _Scale;
|
|
return myMeasurement;
|
|
}
|
|
set
|
|
{
|
|
_StrokeWidth = value.ToString();
|
|
}
|
|
}
|
|
public Color LineColor
|
|
{
|
|
get
|
|
{
|
|
// Stroke = "None" - Eliminate, otherwise the value
|
|
// StrokeWidth = "None" Eliminate, otherwise the value
|
|
string myStroke = InheritedStroke;
|
|
string myWidth = InheritedLineWidth;
|
|
if (myStroke.ToLower() == "none" || myWidth.ToLower() == "none" || myWidth == "0") // Light
|
|
return Color.LightGray;
|
|
return ColorTranslator.FromHtml(myStroke);
|
|
}
|
|
set
|
|
{
|
|
if (value == Color.Empty)
|
|
_Stroke = "none";
|
|
else
|
|
_Stroke = ColorTranslator.ToHtml(value);
|
|
}
|
|
|
|
}
|
|
public Color OutlineColor
|
|
{
|
|
get
|
|
{
|
|
// Stroke = "None" - Eliminate, otherwise the value
|
|
// StrokeWidth = "0" Eliminate, otherwise the value
|
|
string myStroke = InheritedStroke;
|
|
//string myWidth = InheritedOutlineWidth;
|
|
string myWidth = InheritedLineWidth;
|
|
if (myStroke.ToLower() == "none" || myWidth == "0") // Eliminate
|
|
return Color.Empty;
|
|
return ColorTranslator.FromHtml(myStroke);
|
|
}
|
|
set
|
|
{
|
|
if (value == Color.Empty)
|
|
_Stroke = "none";
|
|
else
|
|
_Stroke = ColorTranslator.ToHtml(value);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
#region Properties
|
|
private string _Stroke = string.Empty; // Default value is None
|
|
public string Stroke
|
|
{
|
|
get { return _Stroke; }
|
|
set { _Stroke = value; }
|
|
}
|
|
private string _StrokeWidth = string.Empty; // Default value is 1PX
|
|
public string StrokeWidth
|
|
{
|
|
get { return _StrokeWidth; }
|
|
set { _StrokeWidth = value; }
|
|
}
|
|
#endregion
|
|
}
|
|
}
|