/// <summary> /// Draws all markers given in rendererInfo at the positions specified by points. /// </summary> void DrawMarker(XGraphics graphics, XPoint[] points, SeriesRendererInfo rendererInfo) { foreach (XPoint pos in points) { MarkerRenderer.Draw(graphics, pos, rendererInfo._markerRendererInfo); } }
/// <summary> /// Draws one legend entry. /// </summary> internal override void Draw() { XGraphics gfx = _rendererParms.Graphics; LegendEntryRendererInfo leri = (LegendEntryRendererInfo)_rendererParms.RendererInfo; XRect rect; if (leri._seriesRendererInfo._series._chartType == ChartType.Line) { // Draw line. XPoint posLineStart = new XPoint(leri.X, leri.Y + leri.Height / 2); XPoint posLineEnd = new XPoint(leri.X + leri.MarkerArea.Width, leri.Y + leri.Height / 2); gfx.DrawLine(new XPen(((XSolidBrush)leri.MarkerBrush).Color), posLineStart, posLineEnd); // Draw marker. double x = leri.X + leri.MarkerArea.Width / 2; XPoint posMarker = new XPoint(x, leri.Y + leri.Height / 2); MarkerRenderer.Draw(gfx, posMarker, leri._seriesRendererInfo._markerRendererInfo); } else { // Draw series rectangle for column, bar or pie charts. rect = new XRect(leri.X, leri.Y, leri.MarkerArea.Width, leri.MarkerArea.Height); rect.Y += (leri.Height - leri.MarkerArea.Height) / 2; gfx.DrawRectangle(leri.MarkerPen, leri.MarkerBrush, rect); } // Draw text if (leri.EntryText.Length > 0) { rect = leri.Rect; rect.X += leri.MarkerArea.Width + LegendEntryRenderer.SpacingBetweenMarkerAndText; XStringFormat format = new XStringFormat(); format.LineAlignment = XLineAlignment.Near; gfx.DrawString(leri.EntryText, leri._legendRendererInfo.Font, leri._legendRendererInfo.FontColor, rect, format); } }