public virtual void DrawToBuffer(DrawAxisArgs args) { Grid.DrawToBuffer(args); args.Graphics.DrawLine(Palette.AxisPen, new Point(args.Rectangle.Right, args.Rectangle.Bottom), new Point(args.Rectangle.Left, args.Rectangle.Bottom)); }
public override void DrawToBuffer(DrawAxisArgs drawArgs) { var args = drawArgs as DrawAxisYArgs; if (args == null) { return; } for (double i = args.Range.Min; i <= args.Range.Max; i += args.Range.Resolution) { // make sure that the last point is args.Range.Max if (i + args.Range.Resolution > args.Range.Max) { i = args.Range.Max; } string label = args.Range.GetRelativeString(i); LongPoint pt = LongPoint.TranslateToScreen(new LongPoint(0, (long)i), DataTimeRange.UnitRange, args.Range, new LongRectangle(args.Rectangle)); if (i != 0) { args.Graphics.DrawLine(Palette.GridPen, new Point(args.Rectangle.Right, (int)pt.Y), new Point(args.Rectangle.Left, (int)pt.Y)); } if (!args.ShowLabels) { continue; } if (Labels == GridLabels.All) { SizeF labelsize = args.Graphics.MeasureString(label, Palette.LabelFont); args.Graphics.DrawString(label, Palette.LabelFont, Palette.LabelBrush, new PointF(args.Rectangle.Right, i == args.Range.Min ? (int)pt.Y - labelsize.Height : i == args.Range.Max ? (int)pt.Y : (int)pt.Y - (labelsize.Height / 2))); } else if (Labels == GridLabels.MinMax) { if (i == args.Range.Min || i + args.Range.Resolution > args.Range.Max) { SizeF labelsize = args.Graphics.MeasureString(label, Palette.LabelFont); args.Graphics.DrawString(label, Palette.LabelFont, Palette.LabelBrush, new PointF(args.Rectangle.Right, i == args.Range.Min ? (int)pt.Y - labelsize.Height : i == args.Range.Max ? (int)pt.Y : (int)pt.Y - (labelsize.Height / 2))); } // draw units string unitString = args.Range.UnitString; if (!string.IsNullOrEmpty(unitString)) { SizeF unitssize = args.Graphics.MeasureString(unitString, Palette.LabelFont); args.Graphics.DrawString(unitString, Palette.LabelFont, Palette.LabelBrush, new PointF(args.Rectangle.Right, args.Rectangle.Top + (args.Rectangle.Height / 2) - (unitssize.Height / 2))); } } } }
public override void DrawToBuffer(DrawAxisArgs drawArgs) { var args = drawArgs as DrawAxisXArgs; if (args == null) { return; } Dictionary <long, string> labels = new Dictionary <long, string>(); long last_i = long.MinValue; for (long i = args.Range.Min - (args.Range.Min % -args.Range.Resolution); i >= args.Range.Max; i += args.Range.Resolution) { string label = args.Range.GetRelativeString(i + ArchiveMaintainer.ClientServerOffset.Ticks, ArchiveMaintainer.GraphNow); if (last_i != long.MinValue && label == labels[last_i]) { labels.Remove(last_i); } labels[i] = label; last_i = i; } for (long i = args.Range.Min - (args.Range.Min % -args.Range.Resolution); i >= args.Range.Max; i += args.Range.Resolution) { LongPoint pt = LongPoint.TranslateToScreen(new LongPoint(i, 0), args.Range, DataRange.UnitRange, new LongRectangle(args.Rectangle)); if (i != 0) { args.Graphics.DrawLine(Palette.GridPen, new Point((int)pt.X, args.Rectangle.Bottom), new Point((int)pt.X, args.Rectangle.Top)); } if (!args.ShowLabels) { continue; } if (!labels.ContainsKey(i)) { continue; } string label = labels[i]; if (Labels == GridLabels.MinMax && (i == args.Range.Min - (args.Range.Min % -args.Range.Resolution) || i + args.Range.Resolution < args.Range.Max)) { SizeF labelsize = args.Graphics.MeasureString(label, Palette.LabelFont); args.Graphics.DrawString(label, Palette.LabelFont, Palette.LabelBrush, new PointF(i == args.Range.Min - (args.Range.Min % -args.Range.Resolution) ? (int)pt.X - labelsize.Width : (int)pt.X, args.Rectangle.Bottom)); } else if (Labels == GridLabels.All) { SizeF labelsize = args.Graphics.MeasureString(label, Palette.LabelFont); args.Graphics.DrawString(label, Palette.LabelFont, Palette.LabelBrush, new PointF(i == args.Range.Min ? (int)pt.X - labelsize.Width : i == args.Range.Max ? (int)pt.X : (int)pt.X - (labelsize.Width / 2), args.Rectangle.Bottom)); } } }
public override void DrawToBuffer(DrawAxisArgs drawArgs) { var args = drawArgs as DrawAxisXArgs; if (args == null) return; Dictionary<long, string> labels = new Dictionary<long, string>(); long last_i = long.MinValue; for (long i = args.Range.Min - (args.Range.Min % -args.Range.Resolution); i >= args.Range.Max; i += args.Range.Resolution) { string label = args.Range.GetRelativeString(i + ArchiveMaintainer.ClientServerOffset.Ticks, ArchiveMaintainer.GraphNow); if (last_i != long.MinValue && label == labels[last_i]) labels.Remove(last_i); labels[i] = label; last_i = i; } for (long i = args.Range.Min - (args.Range.Min % -args.Range.Resolution); i >= args.Range.Max; i += args.Range.Resolution) { LongPoint pt = LongPoint.TranslateToScreen(new LongPoint(i, 0), args.Range, DataRange.UnitRange, new LongRectangle(args.Rectangle)); if (i != 0) args.Graphics.DrawLine(Palette.GridPen, new Point((int)pt.X, args.Rectangle.Bottom), new Point((int)pt.X, args.Rectangle.Top)); if (!args.ShowLabels) continue; if (!labels.ContainsKey(i)) continue; string label = labels[i]; if (Labels == GridLabels.MinMax && (i == args.Range.Min - (args.Range.Min % -args.Range.Resolution) || i + args.Range.Resolution < args.Range.Max)) { SizeF labelsize = args.Graphics.MeasureString(label, Palette.LabelFont); args.Graphics.DrawString(label, Palette.LabelFont, Palette.LabelBrush, new PointF(i == args.Range.Min - (args.Range.Min % -args.Range.Resolution) ? (int)pt.X - labelsize.Width : (int)pt.X, args.Rectangle.Bottom)); } else if (Labels == GridLabels.All) { SizeF labelsize = args.Graphics.MeasureString(label, Palette.LabelFont); args.Graphics.DrawString(label, Palette.LabelFont, Palette.LabelBrush, new PointF(i == args.Range.Min ? (int)pt.X - labelsize.Width : i == args.Range.Max ? (int)pt.X : (int)pt.X - (labelsize.Width / 2), args.Rectangle.Bottom)); } } }
public override void DrawToBuffer(DrawAxisArgs drawArgs) { var args = drawArgs as DrawAxisNavArgs; if (args == null) { return; } for (long i = args.Range.Min - (args.Range.Min % -args.Range.Resolution); i >= args.Range.Max; i += args.Range.Resolution) { string label = args.Range.GetRelativeString(i + ArchiveMaintainer.ClientServerOffset.Ticks, ArchiveMaintainer.GraphNow); LongPoint pt = LongPoint.TranslateToScreen(new LongPoint(i, 0), args.Range, DataRange.UnitRange, new LongRectangle(args.Rectangle)); if (i != 0) { args.Graphics.DrawLine(Palette.GridPen, new Point((int)pt.X, args.Rectangle.Bottom), new Point((int)pt.X, args.Rectangle.Top)); } if (args.ShowLabels && Labels == GridLabels.All) { args.Graphics.DrawString(label, Palette.LabelFont, Palette.LabelBrush, new PointF((int)pt.X, args.Rectangle.Top)); } } }
public abstract void DrawToBuffer(DrawAxisArgs args);
public override void DrawToBuffer(DrawAxisArgs drawArgs) { var args = drawArgs as DrawAxisYArgs; if (args == null) return; for (double i = args.Range.Min; i <= args.Range.Max; i += args.Range.Resolution) { string label = args.Range.GetRelativeString(i); LongPoint pt = LongPoint.TranslateToScreen(new LongPoint(0, (long)i), DataTimeRange.UnitRange, args.Range, new LongRectangle(args.Rectangle)); if (i != 0) args.Graphics.DrawLine(Palette.GridPen, new Point(args.Rectangle.Right, (int)pt.Y), new Point(args.Rectangle.Left, (int)pt.Y)); if (!args.ShowLabels) continue; if (Labels == GridLabels.All) { SizeF labelsize = args.Graphics.MeasureString(label, Palette.LabelFont); args.Graphics.DrawString(label, Palette.LabelFont, Palette.LabelBrush, new PointF(args.Rectangle.Right, i == args.Range.Min ? (int)pt.Y - labelsize.Height : i == args.Range.Max ? (int)pt.Y : (int)pt.Y - (labelsize.Height / 2))); } else if (Labels == GridLabels.MinMax) { if (i == args.Range.Min || i + args.Range.Resolution > args.Range.Max) { SizeF labelsize = args.Graphics.MeasureString(label, Palette.LabelFont); args.Graphics.DrawString(label, Palette.LabelFont, Palette.LabelBrush, new PointF(args.Rectangle.Right, i == args.Range.Min ? (int)pt.Y - labelsize.Height : i == args.Range.Max ? (int)pt.Y : (int)pt.Y - (labelsize.Height / 2))); } // draw units string unitString = args.Range.UnitString; if (!string.IsNullOrEmpty(unitString)) { SizeF unitssize = args.Graphics.MeasureString(unitString, Palette.LabelFont); args.Graphics.DrawString(unitString, Palette.LabelFont, Palette.LabelBrush, new PointF(args.Rectangle.Right, args.Rectangle.Top + (args.Rectangle.Height / 2) - (unitssize.Height / 2))); } } } }
public override void DrawToBuffer(DrawAxisArgs drawArgs) { var args = drawArgs as DrawAxisNavArgs; if (args == null) return; for (long i = args.Range.Min - (args.Range.Min % -args.Range.Resolution); i >= args.Range.Max; i += args.Range.Resolution) { string label = args.Range.GetRelativeString(i + ArchiveMaintainer.ClientServerOffset.Ticks, ArchiveMaintainer.GraphNow); LongPoint pt = LongPoint.TranslateToScreen(new LongPoint(i, 0), args.Range, DataRange.UnitRange, new LongRectangle(args.Rectangle)); if (i != 0) args.Graphics.DrawLine(Palette.GridPen, new Point((int)pt.X, args.Rectangle.Bottom), new Point((int)pt.X, args.Rectangle.Top)); if (args.ShowLabels && Labels == GridLabels.All) { args.Graphics.DrawString(label, Palette.LabelFont, Palette.LabelBrush, new PointF((int)pt.X, args.Rectangle.Top)); } } }
public override void DrawToBuffer(DrawAxisArgs args) { Grid.DrawToBuffer(args); }