using DrawGraph; using Newtonsoft.Json; using System; using System.Drawing; namespace DrawGraph { [JsonObject(MemberSerialization.OptOut)] [Serializable] public class TablePackObj : PackObjBase { private Color frameColor = Color.Black; public uint columns = 1u; public uint rows = 1u; private int lineWidth = 1; public uint Rows { get { return this.rows; } set { this.rows = value; } } public uint Columns { get { return this.columns; } set { this.columns = value; } } public Color FrameColor { get { return this.frameColor; } set { this.frameColor = value; } } [ClassAttributs(Description = "线粗细")] public int LineWidth { get { return this.lineWidth; } set { this.lineWidth = value; } } public TablePackObj(ZedGraphControl zgc, PackObjManager poManager) : base(zgc, poManager) { this.baseZed = zgc; base.PackText = "表格" + this.index.ToString(); } public override void Draw() { bool flag = this.baseZed == null; if (!flag) { this.Clear(); bool flag2 = base.RealEndX <= base.RealX || base.RealEndY <= base.RealY; if (!flag2) { float num = base.RealEndX - base.RealX; float num2 = base.RealEndY - base.RealY; BoxObj boxObj = new BoxObj((double)base.RealX, (double)base.RealY, (double)num, (double)num2); boxObj.Tag = base.PackTag; boxObj.Location.CoordinateFrame = CoordType.PaneFraction; boxObj.Border.IsVisible = true; bool isSelect = base.IsSelect; if (isSelect) { boxObj.Border.Width = (float)this.LineWidth; boxObj.Border.Color = Color.Red; } else { boxObj.Border.Color = this.frameColor; } boxObj.Fill.IsVisible = false; boxObj.ZOrder = ZOrder.B_BehindLegend; ZUtil.DrawBox(boxObj, this.baseZed); int num3 = 1; while ((long)num3 < (long)((ulong)this.rows)) { float num4 = base.RealY + (float)num3 * ((base.RealEndY - base.RealY) / this.rows); ZUtil.DrawLine((double)base.RealX, (double)num4, (double)base.RealEndX, (double)num4, this.baseZed, base.PackTag + "-" + num3.ToString(), boxObj.Border.Color); num3++; } int num5 = 1; while ((long)num5 < (long)((ulong)this.columns)) { float num6 = base.RealX + (float)num5 * ((base.RealEndX - base.RealX) / this.columns); ZUtil.DrawLine((double)num6, (double)base.RealY, (double)num6, (double)base.RealEndY, this.baseZed, base.PackTag + "-" + num5.ToString(), boxObj.Border.Color); num5++; } base.Refresh(); } } } public override void Clear() { GraphObj graphObj = this.baseZed.MasterPane.GraphObjList[base.PackTag]; bool flag = graphObj != null; if (flag) { this.baseZed.MasterPane.GraphObjList.Remove(graphObj); } int num = 1; while ((long)num < (long)((ulong)this.rows)) { graphObj = this.baseZed.MasterPane.GraphObjList[base.PackTag + "-" + num.ToString()]; bool flag2 = graphObj != null; if (flag2) { this.baseZed.MasterPane.GraphObjList.Remove(graphObj); } num++; } int num2 = 1; while ((long)num2 < (long)((ulong)this.columns)) { graphObj = this.baseZed.MasterPane.GraphObjList[base.PackTag + "-" + num2.ToString()]; bool flag3 = graphObj != null; if (flag3) { this.baseZed.MasterPane.GraphObjList.Remove(graphObj); } num2++; } } } }