FastReport
35 строк · 1.3 Кб
1using FastReport.Utils;2using System.Drawing;3using System.ComponentModel;4
5namespace FastReport.Gauge.Radial6{
7#if !DEBUG8[DesignTimeVisible(false)]9#endif10class RadialLabel : GaugeLabel11{12public RadialLabel(GaugeObject parent) : base(parent)13{14Parent = parent as RadialGauge;15}16
17public override void Draw(FRPaintEventArgs e)18{19if ((Parent as RadialGauge).Type == RadialGaugeType.Circle)20{21base.Draw(e);22float x = (Parent.AbsLeft + Parent.Border.Width / 2) * e.ScaleX;23float y = (Parent.AbsTop + Parent.Border.Width / 2) * e.ScaleY;24float dx = (Parent.Width - Parent.Border.Width) * e.ScaleX - 1;25float dy = (Parent.Height - Parent.Border.Width) * e.ScaleY - 1;26
27PointF lblPt = new PointF(x + dx / 2, y + dy - ((Parent.Scale as RadialScale).AvrTick.Y - y));28SizeF txtSize = RadialUtils.GetStringSize(e, Parent, Font, Text);29Font font = RadialUtils.GetFont(e, Parent, Font);30Brush brush = e.Cache.GetBrush(Color);31e.Graphics.DrawString(Text, font, brush, lblPt.X - txtSize.Width / 2, lblPt.Y - txtSize.Height / 2);32}33}34}35}
36