private static void RenderDataPointLabel(ChartGraphics graph, ChartArea area, int index, TreeMapNode dataPointTreeMapNode, RectangleF seriesLabelRelativeRect) { RectangleF relativeRect = TreeMapChart.GetRelativeRect(graph, dataPointTreeMapNode); string labelText = TreeMapChart.GetLabelText(dataPointTreeMapNode.DataPoint); TreeMapChart.RenderDataPointLabel(graph, area, index, dataPointTreeMapNode, labelText, TreeMapChart.GetDataPointLabelRelativeRect(graph, dataPointTreeMapNode, relativeRect, labelText), relativeRect, seriesLabelRelativeRect); }
private static string GetLabelText(DataPoint point) { if (!TreeMapChart.IsLabelVisible(point)) { return(string.Empty); } return(PieChart.GetLabelText(point, true)); }
private static void RenderDataPoint(ChartGraphics graph, CommonElements common, int index, TreeMapNode dataPointTreeMapNode) { RectangleF relativeRect = TreeMapChart.GetRelativeRect(graph, dataPointTreeMapNode); DataPoint dataPoint = dataPointTreeMapNode.DataPoint; graph.FillRectangleRel(relativeRect, dataPoint.Color, dataPoint.BackHatchStyle, dataPoint.BackImage, dataPoint.BackImageMode, dataPoint.BackImageTransparentColor, dataPoint.BackImageAlign, dataPoint.BackGradientType, dataPoint.BackGradientEndColor, dataPoint.BorderColor, dataPoint.BorderWidth, dataPoint.BorderStyle, dataPoint.series.ShadowColor, dataPoint.series.ShadowOffset, PenAlignment.Inset, ChartGraphics.GetBarDrawingStyle(dataPoint), true); TreeMapChart.AddDataPointHotRegion(graph, common, index, dataPoint, relativeRect); }
private static RectangleF GetSeriesLabelRelativeRect(ChartGraphics graph, ChartArea area, Series series, RectangleF seriesRelativeRect, DataPoint point) { if (!string.IsNullOrEmpty(series.legendText) && TreeMapChart.IsLabelVisible(point)) { using (Font font = TreeMapChart.GetSeriesLabelFont(point)) { return(TreeMapChart.GetLabelRelativeRect(graph, font, seriesRelativeRect, series.legendText, LabelAlignmentTypes.TopLeft)); } } return(RectangleF.Empty); }
private static void RenderDataPointLabel(ChartGraphics graph, ChartArea area, int index, TreeMapNode dataPointTreeMapNode, string text, RectangleF labelRelativeRect, RectangleF dataPointRelativeRect, RectangleF seriesLabelRelativeRect) { if (!labelRelativeRect.IsEmpty && TreeMapChart.CanLabelFit(dataPointRelativeRect, labelRelativeRect) && !labelRelativeRect.IntersectsWith(seriesLabelRelativeRect)) { StringFormat stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Near; stringFormat.LineAlignment = StringAlignment.Near; DataPoint dataPoint = dataPointTreeMapNode.DataPoint; graph.DrawPointLabelStringRel(area.Common, text, dataPoint.Font, new SolidBrush(dataPoint.FontColor), labelRelativeRect.Location, stringFormat, dataPoint.FontAngle, labelRelativeRect, dataPoint.LabelBackColor, dataPoint.LabelBorderColor, dataPoint.LabelBorderWidth, dataPoint.LabelBorderStyle, dataPoint.series, dataPoint, index); } }
private static RectangleF GetLabelRelativeRect(ChartGraphics graph, Font font, RectangleF treeMapNodeRelativeRect, string text, LabelAlignmentTypes labelAlignment) { if (string.IsNullOrEmpty(text)) { return(RectangleF.Empty); } SizeF relativeSize = graph.GetRelativeSize(graph.MeasureString(text.Replace("\\n", "\n"), font, new SizeF(1000f, 1000f), new StringFormat(StringFormat.GenericTypographic))); float num = relativeSize.Width + relativeSize.Width / (float)text.Length; float num2 = (float)(relativeSize.Height + relativeSize.Height / 8.0); return(new RectangleF(TreeMapChart.GetLabelXPosition(treeMapNodeRelativeRect, num, labelAlignment), TreeMapChart.GetLabelYPosition(treeMapNodeRelativeRect, num2, labelAlignment), num, num2)); }
private static void RenderSeriesLabel(ChartGraphics graph, TreeMapNode seriesTreeMapNode, RectangleF labelRelativeRect) { if (!labelRelativeRect.IsEmpty) { Series series = seriesTreeMapNode.Series; DataPoint dataPoint = seriesTreeMapNode.DataPoint; using (Font font = TreeMapChart.GetSeriesLabelFont(dataPoint)) { StringFormat stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Near; stringFormat.LineAlignment = StringAlignment.Near; graph.DrawStringRel(series.legendText, font, new SolidBrush(dataPoint.FontColor), labelRelativeRect.Location, stringFormat, 0); } } }
private static void RenderDataPoints(ChartGraphics graph, CommonElements common, List <TreeMapNode> seriesTreeMapNodes) { foreach (TreeMapNode seriesTreeMapNode in seriesTreeMapNodes) { int num = 0; foreach (TreeMapNode child in seriesTreeMapNode.Children) { RectangleF rectangle = child.Rectangle; TreeMapChart.RenderDataPoint(graph, common, num, child); if (seriesTreeMapNode.DataPoint == null && !child.DataPoint.Empty) { seriesTreeMapNode.DataPoint = child.DataPoint; } num++; } } }
private static string GetLabelText(CategoryNode categoryNode, DataPoint dataPoint, Series series, DataPointAttributes dataPointAttributes) { if (dataPoint != null) { if (TreeMapChart.IsLabelVisible(dataPoint)) { string labelText = PieChart.GetLabelText(dataPoint, false); if (!string.IsNullOrEmpty(labelText)) { return(labelText); } return(SunburstChart.GetCategoryNodeLabelText(categoryNode, series, dataPoint)); } } else if (TreeMapChart.IsLabelVisible(dataPointAttributes)) { return(SunburstChart.GetCategoryNodeLabelText(categoryNode, series, dataPointAttributes)); } return(string.Empty); }
public void Paint(ChartGraphics graph, CommonElements common, ChartArea area, Series seriesToDraw) { foreach (Series item in common.DataManager.Series) { if (item.IsVisible() && item.ChartArea == area.Name && string.Compare(item.ChartTypeName, this.Name, true, CultureInfo.CurrentCulture) != 0 && !common.ChartPicture.SuppressExceptions) { throw new InvalidOperationException(SR.ExceptionChartCanNotCombine(this.Name)); } } double value = default(double); List <TreeMapNode> list = default(List <TreeMapNode>); TreeMapChart.BuildTreeNodes(common, area, out value, out list); RectangleF plottingArea = TreeMapChart.GetPlottingArea(graph, area); TreeMapSquaringAlgorithm.CalculateRectangles(plottingArea, list, value); graph.SetClip(graph.GetRelativeRectangle(plottingArea)); TreeMapChart.RenderDataPoints(graph, common, list); TreeMapChart.RenderLabels(graph, area, list); graph.ResetClip(); }
private static void RenderLabels(ChartGraphics graph, ChartArea area, List <TreeMapNode> seriesTreeMapNodes) { foreach (TreeMapNode seriesTreeMapNode in seriesTreeMapNodes) { if (seriesTreeMapNode.DataPoint != null) { RectangleF relativeRect = TreeMapChart.GetRelativeRect(graph, seriesTreeMapNode); RectangleF rectangleF = TreeMapChart.GetSeriesLabelRelativeRect(graph, area, seriesTreeMapNode.Series, relativeRect, seriesTreeMapNode.DataPoint); if (!TreeMapChart.CanLabelFit(relativeRect, rectangleF)) { rectangleF = RectangleF.Empty; } int num = 0; foreach (TreeMapNode child in seriesTreeMapNode.Children) { DataPoint dataPoint = child.DataPoint; RectangleF rectangle = child.Rectangle; TreeMapChart.RenderDataPointLabel(graph, area, num, child, rectangleF); num++; } TreeMapChart.RenderSeriesLabel(graph, seriesTreeMapNode, rectangleF); } } }
private static RectangleF GetDataPointLabelRelativeRect(ChartGraphics graph, TreeMapNode dataPointTreeMapNode, RectangleF dataPointRelativeRect, string text) { DataPoint dataPoint = dataPointTreeMapNode.DataPoint; return(TreeMapChart.GetLabelRelativeRect(graph, dataPoint.Font, dataPointRelativeRect, text, TreeMapChart.GetLabelAlignment(dataPoint))); }