我正在创建Charts饼图,条形图和折线图,并希望将其图例以及valuea,图例标题设置为图表,并将其指向图表。我该怎么办?
答案 0 :(得分:0)
通常,您无需添加Legend
,因为已经有一个默认值。但是,由于要在代码中创建Chart
,因此确实需要多编写一些代码。添加Legend
是其中的一项。
您已经创建了legend
,但是没有添加它而是创建了另一个图例。而是写:chartA.Legends.Add(legend)
请注意,constructor上带有字符串参数的文档(包括Intellisense)是错误的!它可以按预期运行,而不像MSDN上记录的那样!
我建议(chartA.Legends[0].Title = "someString";
)的工作正常,但前提是您已完成所有其他需要做的事情:
您还必须创建(至少)
ChartArea
Series
和您想要的ChartType
。DataPoint
。 示例:
Legend legend = new Legend();
Chart chartA = new Chart(); // <<---!
chartA.BackColor = Color.White;
chartA.Width = 370;
chartA.Height = 250;
chartA.Location = new Point(48, 35);
chartA.Name = textBox1.Text;
chartA.Legends.Add(legend); // <<---!
legend.Title = "Age of The Employees"; // <<---!
chartA.ChartAreas.Add(new ChartArea("ca")); // <<---!
chartA.ChartAreas["ca"].BackColor = Color.LightSeaGreen;
Series s1 = chartA.Series.Add("s1"); // <<---!
s1.ChartType = SeriesChartType.Pie;
s1.Points.AddY(12);
s1.Points.AddY(32);
..
第一个Legend
将自动 填充,每<{1}或一个LegendItem
一个Series
(如果您有Pie
图表)则每个DataPoint
一项
顺便说一句:您可能还有Legends
,但您必须照顾他们的内容以及他们的立场/对接。.
更新:如果需要,您可以控制Legend的Font
和TitleFont
;它以通常的方式工作,即从Font
的{{1}}开始创建新的FontFamily
:
Font
如果标题太长而无法放入垂直图例中,则可能需要在标题中插入换行符( legend.Font = new Font("Consolas", 10f);
legend.TitleFont = new Font(legend.Font.FontFamily, 14f);
)。