|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
|
using System.Drawing.Design;
|
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
using System.Windows.Forms.VisualStyles;
|
|
|
|
|
|
using System.Xml.Serialization;
|
|
|
|
|
|
using GeoSigma.SigmaDrawerStyle;
|
|
|
|
|
|
using GeoSigma.SigmaDrawerStyle.Converter;
|
|
|
|
|
|
using SigmaDrawerElement;
|
|
|
|
|
|
using SigmaDrawerStyle;
|
|
|
|
|
|
|
|
|
|
|
|
namespace GeoSigma.SigmaDrawerElement
|
|
|
|
|
|
{
|
|
|
|
|
|
#pragma warning disable SA1402 // File may only contain a single type
|
|
|
|
|
|
#pragma warning disable SA1600 // Elements should be documented
|
|
|
|
|
|
#pragma warning disable SA1649 // File name should match first type name
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 射孔道
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[XmlRoot("Pcg")]
|
|
|
|
|
|
[TypeConverter(typeof(PropertySorter))]
|
|
|
|
|
|
public class WellInTrackOilTest :baseInTrackObj
|
|
|
|
|
|
{
|
|
|
|
|
|
private static Dictionary<HorizontalAlignment, string> AlignMap = new Dictionary<HorizontalAlignment, string>()
|
|
|
|
|
|
{
|
|
|
|
|
|
{ HorizontalAlignment.Left, "Left" },
|
|
|
|
|
|
{ HorizontalAlignment.Right, "Right" },
|
|
|
|
|
|
{ HorizontalAlignment.Center, "Center" },
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
private const string ShotTrackCategory = "\t\t设置试油数据";
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("顶深")]
|
|
|
|
|
|
[PropertyOrder(0)]
|
|
|
|
|
|
public double TopDepth
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.Top;
|
|
|
|
|
|
set => WellTestLayer.Top = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("底深")]
|
|
|
|
|
|
[PropertyOrder(1)]
|
|
|
|
|
|
public double BottomDepth
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.Bottom;
|
|
|
|
|
|
set => WellTestLayer.Bottom = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("背景颜色")]
|
|
|
|
|
|
[PropertyOrder(2)]
|
|
|
|
|
|
[Editor(typeof(PropertyEditorColor), typeof(UITypeEditor))]
|
|
|
|
|
|
public Color BackgroundColor
|
|
|
|
|
|
{
|
|
|
|
|
|
get => ColorTranslator2.FromHtml(WellTestLayer.BackBrush.BackColor);
|
|
|
|
|
|
set => WellTestLayer.BackBrush.BackColor = ColorTranslator2.ToHtml(value);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//[XmlIgnore]
|
|
|
|
|
|
//[Category(ShotTrackCategory)]
|
|
|
|
|
|
//[DisplayName("文本")]
|
|
|
|
|
|
//[PropertyOrder(4)]
|
|
|
|
|
|
//public string Text
|
|
|
|
|
|
//{
|
|
|
|
|
|
// get => WellText.Font.Text;
|
|
|
|
|
|
// set => WellText.Font.Text = value;
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("字体")]
|
|
|
|
|
|
[PropertyOrder(3)]
|
|
|
|
|
|
[Editor(typeof(PropertyEditorWellFontEx), typeof(UITypeEditor))]
|
|
|
|
|
|
public WellFontEx HeaderFont
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.Font;
|
|
|
|
|
|
set => WellTestLayer.Font = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//[XmlIgnore]
|
|
|
|
|
|
//[Category(ShotTrackCategory)]
|
|
|
|
|
|
//[DisplayName("水平位置")]
|
|
|
|
|
|
//[PropertyOrder(7)]
|
|
|
|
|
|
//public HorizontalAlignment HorizontalAlign
|
|
|
|
|
|
//{
|
|
|
|
|
|
// get => DictionaryHelper.Reverse(AlignMap)[WellTestLayer.Align];
|
|
|
|
|
|
// set => WellText.Align = AlignMap[value];
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("层号")]
|
|
|
|
|
|
[PropertyOrder(4)]
|
|
|
|
|
|
public string name
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.Name;
|
|
|
|
|
|
set => WellTestLayer.Name = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("起始时间")]
|
|
|
|
|
|
[PropertyOrder(4)]
|
|
|
|
|
|
public string StartTime
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.Start;
|
|
|
|
|
|
set => WellTestLayer.Start = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("结束时间")]
|
|
|
|
|
|
[PropertyOrder(5)]
|
|
|
|
|
|
public string EndTime
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.End;
|
|
|
|
|
|
set => WellTestLayer.End = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("措施")]
|
|
|
|
|
|
[PropertyOrder(6)]
|
|
|
|
|
|
public string method
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.Method;
|
|
|
|
|
|
set => WellTestLayer.Method = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("试油结论")]
|
|
|
|
|
|
[PropertyOrder(7)]
|
|
|
|
|
|
public string Verdict
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.Verdict;
|
|
|
|
|
|
set => WellTestLayer.Verdict = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("日产油")]
|
|
|
|
|
|
[PropertyOrder(8)]
|
|
|
|
|
|
public double dailyOil
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.DailyOil;
|
|
|
|
|
|
set => WellTestLayer.DailyOil = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("日产气")]
|
|
|
|
|
|
[PropertyOrder(9)]
|
|
|
|
|
|
public double DailyGas
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.DailyGas;
|
|
|
|
|
|
set => WellTestLayer.DailyGas = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("日产水")]
|
|
|
|
|
|
[PropertyOrder(10)]
|
|
|
|
|
|
public double DailyWater
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.DailyWater;
|
|
|
|
|
|
set => WellTestLayer.DailyWater = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("累计产油")]
|
|
|
|
|
|
[PropertyOrder(11)]
|
|
|
|
|
|
public double TotalOil
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.TotalOil;
|
|
|
|
|
|
set => WellTestLayer.TotalOil = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("累计产气")]
|
|
|
|
|
|
[PropertyOrder(12)]
|
|
|
|
|
|
public double TotalGas
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.TotalGas;
|
|
|
|
|
|
set => WellTestLayer.TotalGas = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("累计产水")]
|
|
|
|
|
|
[PropertyOrder(13)]
|
|
|
|
|
|
public double TotalWater
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.TotalWater;
|
|
|
|
|
|
set => WellTestLayer.TotalWater = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("静压(MPa)")]
|
|
|
|
|
|
[PropertyOrder(14)]
|
|
|
|
|
|
public double StaticMPa
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.StaticMPa;
|
|
|
|
|
|
set => WellTestLayer.StaticMPa = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("流压(MPa)")]
|
|
|
|
|
|
[PropertyOrder(15)]
|
|
|
|
|
|
public double FlowMpa
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.FlowMPa;
|
|
|
|
|
|
set => WellTestLayer.FlowMPa = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("套压(MPa)")]
|
|
|
|
|
|
[PropertyOrder(16)]
|
|
|
|
|
|
public double CaseMPa
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.CaseMPa;
|
|
|
|
|
|
set => WellTestLayer.CaseMPa = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("静温(度)")]
|
|
|
|
|
|
[PropertyOrder(17)]
|
|
|
|
|
|
public double Temperature
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.Temperature;
|
|
|
|
|
|
set => WellTestLayer.Temperature = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("厚度")]
|
|
|
|
|
|
[PropertyOrder(18)]
|
|
|
|
|
|
public double Thickness
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.thickness;
|
|
|
|
|
|
set => WellTestLayer.thickness = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
[Category(ShotTrackCategory)]
|
|
|
|
|
|
[DisplayName("抽深或冲程")]
|
|
|
|
|
|
[PropertyOrder(19)]
|
|
|
|
|
|
public double Stroke
|
|
|
|
|
|
{
|
|
|
|
|
|
get => WellTestLayer.stroke;
|
|
|
|
|
|
set => WellTestLayer.stroke = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute]
|
|
|
|
|
|
[Browsable(false)]
|
|
|
|
|
|
public int Version { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlElement("TestLayer")]
|
|
|
|
|
|
[Browsable(false)]
|
|
|
|
|
|
public TestLayer WellTestLayer { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#pragma warning restore SA1649 // File name should match first type name
|
|
|
|
|
|
#pragma warning restore SA1600 // Elements should be documented
|
|
|
|
|
|
#pragma warning restore SA1402 // File may only contain a single type
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class TestLayer
|
|
|
|
|
|
{
|
|
|
|
|
|
[XmlAttribute("Name")]
|
|
|
|
|
|
public string Name { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Top")]
|
|
|
|
|
|
public double Top { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Bottom")]
|
|
|
|
|
|
public double Bottom { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("LayerCount")]
|
|
|
|
|
|
public int LayerCount { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Start")]
|
|
|
|
|
|
// [XmlIgnore]
|
|
|
|
|
|
public string Start { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
//[XmlAttribute("Start")]
|
|
|
|
|
|
//[Browsable(false)]
|
|
|
|
|
|
//public string StartString
|
|
|
|
|
|
//{
|
|
|
|
|
|
// get => Start.ToString("yyyy/MM/dd HH:mm:ss");
|
|
|
|
|
|
// set => Start = DateTime.ParseExact(value, "yyyy/MM/dd HH:mm:ss", null);
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("End")]
|
|
|
|
|
|
// [XmlIgnore]
|
|
|
|
|
|
public string End { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
//[XmlAttribute("End")]
|
|
|
|
|
|
//[Browsable(false)]
|
|
|
|
|
|
//public string EndString
|
|
|
|
|
|
//{
|
|
|
|
|
|
// get => End.ToString("yyyy/MM/dd HH:mm:ss");
|
|
|
|
|
|
// set => End = DateTime.ParseExact(value, "yyyy/MM/dd HH:mm:ss", null);
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Method")]
|
|
|
|
|
|
public string Method { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Verdict")]
|
|
|
|
|
|
public string Verdict { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("DailyOil")]
|
|
|
|
|
|
public double DailyOil { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("DailyWater")]
|
|
|
|
|
|
public double DailyWater { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("DailyGas")]
|
|
|
|
|
|
public double DailyGas { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("TotalOil")]
|
|
|
|
|
|
public double TotalOil {get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("TotalWater")]
|
|
|
|
|
|
public double TotalWater { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("TotalGas")]
|
|
|
|
|
|
public double TotalGas { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("DailyOilUnit")]
|
|
|
|
|
|
public string DailyOilUnit { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("DailyWaterUnit")]
|
|
|
|
|
|
public string DailyWaterUnit { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("DailyGasUnit")]
|
|
|
|
|
|
public string DailyGasUnit { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("TotalOilUnit")]
|
|
|
|
|
|
public string TotalOilUnit { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("TotalWaterUnit")]
|
|
|
|
|
|
public string TotalWaterUnit { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("TotalGasUnit")]
|
|
|
|
|
|
public string TotalGasUnit { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("PiezometerDepth")]
|
|
|
|
|
|
public double PiezometerDepth { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Static")]
|
|
|
|
|
|
public double StaticMPa { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Case")]
|
|
|
|
|
|
public double CaseMPa { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Flow")]
|
|
|
|
|
|
public double FlowMPa { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Temperature")]
|
|
|
|
|
|
public double Temperature { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Thickness")]
|
|
|
|
|
|
public double thickness { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Stroke")]
|
|
|
|
|
|
public double stroke { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlElement("Font")]
|
|
|
|
|
|
public WellFontEx Font { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlElement("HunkContent")]
|
|
|
|
|
|
public WellHunkContent HunkContent { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlElement("BackBrush")]
|
|
|
|
|
|
public BackBrushInOilTest BackBrush { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlElement("RenderStyle")]
|
|
|
|
|
|
public RenderStyleInOilTest RenderStyle { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class BackBrushInOilTest
|
|
|
|
|
|
{
|
|
|
|
|
|
[XmlAttribute("Style")]
|
|
|
|
|
|
public int Style { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("BackColor")]
|
|
|
|
|
|
public string BackColor { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("ForeColor")]
|
|
|
|
|
|
public string ForeColor { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("BlendStyle")]
|
|
|
|
|
|
public int BlendStyle { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Visible")]
|
|
|
|
|
|
public bool Visible { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class RenderStyleInOilTest
|
|
|
|
|
|
{
|
|
|
|
|
|
[XmlAttribute("Type")]
|
|
|
|
|
|
public string Type { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("FrameVertLinePos")]
|
|
|
|
|
|
public double FrameVertLinePos { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("RightText")]
|
|
|
|
|
|
public bool RightText { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("ShowDepthText")]
|
|
|
|
|
|
public bool ShowDepthText { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("ShowHistgramText")]
|
|
|
|
|
|
public bool ShowHistgramText { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("TextLineAlign")]
|
|
|
|
|
|
public string TextLineAlign { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Style")]
|
|
|
|
|
|
public string Style { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("TextPadding")]
|
|
|
|
|
|
public int TextPadding { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlElement("GasBrush")]
|
|
|
|
|
|
public BrushStyleInOilTest GasBrush { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlElement("OilBrush")]
|
|
|
|
|
|
public BrushStyleInOilTest OilBrush { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlElement("WaterBrush")]
|
|
|
|
|
|
public BrushStyleInOilTest WaterBrush { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Serializable]
|
|
|
|
|
|
public class BrushStyleInOilTest
|
|
|
|
|
|
{
|
|
|
|
|
|
[XmlAttribute("Style")]
|
|
|
|
|
|
public string Style { get; set; } = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|