258 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			258 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using Newtonsoft.Json;
 | |
| using System;
 | |
| using System.Drawing; 
 | |
| 
 | |
| namespace DrawGraph
 | |
| {
 | |
| 	[JsonObject(MemberSerialization.OptOut)]
 | |
| 	[Serializable]
 | |
| 	public class AbandonTablePackObj : PackObjBase
 | |
| 	{
 | |
| 		private float endX = 0f;
 | |
| 
 | |
| 		private float endY = 0f;
 | |
| 
 | |
| 		private Color frameColor = Color.Black;
 | |
| 
 | |
| 		public uint columns = 1u;
 | |
| 
 | |
| 		public uint rows = 1u;
 | |
| 
 | |
| 		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;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		public   float EndY
 | |
| 		{
 | |
| 			get
 | |
| 			{
 | |
| 				return this.endY;
 | |
| 			}
 | |
| 			set
 | |
| 			{
 | |
| 				this.endY = value;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		public   float EndX
 | |
| 		{
 | |
| 			get
 | |
| 			{
 | |
| 				return this.endX;
 | |
| 			}
 | |
| 			set
 | |
| 			{
 | |
| 				this.endX = value;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		[JsonIgnore]
 | |
| 		private   float RealEndY
 | |
| 		{
 | |
| 			get
 | |
| 			{
 | |
| 				float num = 0f;
 | |
| 				bool flag = base.SetParent != null;
 | |
| 				if (flag)
 | |
| 				{
 | |
| 					num = base.SetParent.Y;
 | |
| 				}
 | |
| 				return this.poManager.Y + num + this.EndY;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		[JsonIgnore]
 | |
| 		private   float RealEndX
 | |
| 		{
 | |
| 			get
 | |
| 			{
 | |
| 				float num = 0f;
 | |
| 				bool flag = base.SetParent != null;
 | |
| 				if (flag)
 | |
| 				{
 | |
| 					num = base.SetParent.X;
 | |
| 				}
 | |
| 				return this.poManager.X + num + this.EndX;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		[JsonIgnore]
 | |
| 		private float RealStartY
 | |
| 		{
 | |
| 			get
 | |
| 			{
 | |
| 				float num = 0f;
 | |
| 				bool flag = base.SetParent != null;
 | |
| 				if (flag)
 | |
| 				{
 | |
| 					num = base.SetParent.Y;
 | |
| 				}
 | |
| 				return this.poManager.Y + num + base.Y;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		[JsonIgnore]
 | |
| 		private float RealStartX
 | |
| 		{
 | |
| 			get
 | |
| 			{
 | |
| 				float num = 0f;
 | |
| 				bool flag = base.SetParent != null;
 | |
| 				if (flag)
 | |
| 				{
 | |
| 					num = base.SetParent.X;
 | |
| 				}
 | |
| 				return this.poManager.X + num + base.X;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		public AbandonTablePackObj(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 = this.RealEndX <= this.RealStartX || this.RealEndY <= this.RealStartY;
 | |
| 				if (!flag2)
 | |
| 				{
 | |
| 					float num = this.RealEndX - this.RealStartX;
 | |
| 					float num2 = this.RealEndY - this.RealStartY;
 | |
| 					BoxObj boxObj = new BoxObj((double)this.RealStartX, (double)this.RealStartY, (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 = 1f;
 | |
| 						boxObj.Border.Color = Color.Red;
 | |
| 					}
 | |
| 					else
 | |
| 					{
 | |
| 						boxObj.Border.Color = this.frameColor;
 | |
| 					}
 | |
| 					boxObj.Fill.IsVisible = false;
 | |
| 					boxObj.ZOrder = ZOrder.B_BehindLegend;
 | |
| 					Util.DrawBox(boxObj, this.baseZed);
 | |
| 					int num3 = 1;
 | |
| 					while ((long)num3 < (long)((ulong)this.rows))
 | |
| 					{
 | |
| 						float num4 = this.RealStartY + (float)num3 * ((this.RealEndY - this.RealStartY) / this.rows);
 | |
| 						Util.DrawLine((double)this.RealStartX, (double)num4, (double)this.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 = this.RealStartX + (float)num5 * ((this.RealEndX - this.RealStartX) / this.columns);
 | |
| 						Util.DrawLine((double)num6, (double)this.RealStartY, (double)num6, (double)this.RealEndY, this.baseZed, base.PackTag + "-" + num5.ToString(), boxObj.Border.Color);
 | |
| 						num5++;
 | |
| 					}
 | |
| 					int num7 = 0;
 | |
| 					while ((long)num7 < (long)((ulong)this.rows))
 | |
| 					{
 | |
| 						int num8 = 0;
 | |
| 						while ((long)num8 < (long)((ulong)this.columns))
 | |
| 						{
 | |
| 							float num9 = this.RealStartX + (float)num8 * ((this.RealEndX - this.RealStartX) / this.columns);
 | |
| 							float num10 = this.RealStartY + (float)(num7 + 1) * ((this.RealEndY - this.RealStartY) / this.rows);
 | |
| 							float num11 = this.RealStartX + (float)(num8 + 1) * ((this.RealEndX - this.RealStartX) / this.columns);
 | |
| 							float num12 = this.RealStartY + (float)num7 * ((this.RealEndY - this.RealStartY) / this.rows);
 | |
| 							Util.DrawLine((double)num9, (double)num10, (double)num11, (double)num12, this.baseZed, base.PackTag + "-" + ((num7 + 1) * (num8 + 1)).ToString(), boxObj.Border.Color);
 | |
| 							num8++;
 | |
| 						}
 | |
| 						num7++;
 | |
| 					}
 | |
| 					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++;
 | |
| 			}
 | |
| 			int num3 = 0;
 | |
| 			while ((long)num3 < (long)((ulong)this.rows))
 | |
| 			{
 | |
| 				int num4 = 0;
 | |
| 				while ((long)num4 < (long)((ulong)this.columns))
 | |
| 				{
 | |
| 					graphObj = this.baseZed.MasterPane.GraphObjList[base.PackTag + "-" + ((num3 + 1) * (num4 + 1)).ToString()];
 | |
| 					bool flag4 = graphObj != null;
 | |
| 					if (flag4)
 | |
| 					{
 | |
| 						this.baseZed.MasterPane.GraphObjList.Remove(graphObj);
 | |
| 					}
 | |
| 					num4++;
 | |
| 				}
 | |
| 				num3++;
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| }
 |