You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kev/Drawer/UCDraw/SigmaDrawerElement/DrawerElementProperty.cs

102 lines
3.1 KiB
C#

1 month ago
using System.Xml;
using System.Xml.Serialization;
using GeoSigma.SigmaDrawerStyle;
using GeoSigmaDrawLib;
namespace SigmaDrawerElement
{
[XmlRoot("Element")]
public class DrawerElementProperty
{
1 month ago
private string _colorRgb;
1 month ago
1 month ago
[XmlAttribute("Color")]
public string ColorRgb
{
get { return _colorRgb; }
1 month ago
set
{
1 month ago
_colorRgb = value;
SyncColorToElement();
1 month ago
}
}
1 month ago
private ElementBase _element;
1 month ago
[XmlElement("Point", typeof(DrawerPoint))]
[XmlElement("Xyz", typeof(DrawerXyz))]
[XmlElement("TwoPoint", typeof(DrawerPointTwoName))]
[XmlElement("CrossPoint", typeof(DrawerPointCrossName))]
[XmlElement("Pline", typeof(DrawerPline))]
[XmlElement("Surface", typeof(DrawerSurface))]
[XmlElement("Text", typeof(DrawerText))]
[XmlElement("Ellipse", typeof(DrawerEllipse))]
[XmlElement("Arc", typeof(DrawerArc))]
[XmlElement("Proportion", typeof(DrawerProportion))]
[XmlElement("Frame", typeof(DrawerFrame))]
[XmlElement("FGrid", typeof(DrawerFrameGrid))]
1 month ago
[XmlElement("FNetting", typeof(DrawerFrameNet))]
1 month ago
[XmlElement("Donut", typeof(DrawerDonut))]
[XmlElement("Circle", typeof(DrawerCircle))]
[XmlElement("Section", typeof(DrawerSeismicSection))]
[XmlElement("WellGroup", typeof(DrawerWellGroup))]
[XmlElement("Block", typeof(DrawerGroup))]
1 month ago
[XmlElement("Axis", typeof(DrawerScaleRuler))]
public ElementBase Element
{
get { return _element; }
set
{
_element = value;
SyncColorToElement();
}
}
private void SyncColorToElement()
{
// 如果还没读取到 Element 或者还没读取到 Color什么都不做
if (_element == null || string.IsNullOrEmpty(_colorRgb)) return;
if (int.TryParse(_colorRgb, out int colorVal))
{
// 判断当前 Element 是不是 DrawerFrameNet 类型
if (_element is DrawerFrameNet net)
{
net.XmlColorProxy = colorVal;
}
}
}
[XmlIgnore]
public DrawElementType ElementType
{
get
{
if (Element != null) return Element.ElementType;
return DrawElementType.ELEMENT_UNKNOWN;
}
set
{
if (Element != null) Element.ElementType = ElementType;
}
}
[XmlIgnore]
public int ColorRef { get; set; }
[XmlAttribute("Layer")]
public string Layer { get; set; }
[XmlAttribute("Visibility")]
public string Visibility { get; set; }
[XmlAttribute("Type")]
public string TypeName { get; set; }
[XmlElement("HowToViewCurve")]
public DrawerCurveStyle CurveStyle { get; set; }
[XmlElement("HowToViewPoint")]
public DrawerPointStyle PointStyle { get; set; }
1 month ago
}
1 month ago
}