Выравнивание ASP.NET Chart
Я использую классические диаграммы asp.net, чтобы представить некоторые данные и затем поместить их в PDF. Проблема, которую я не могу решить, заключается в том, что, когда я добавляю легенды в правую часть графика, он сдвигается вниз. Кто-нибудь может понять почему?
_chart.Height = _chartHeight;
_chart.Width = _chartWidth;
Legend legend = new Legend("Default");
legend.LegendStyle = LegendStyle.Column;
legend.IsTextAutoFit = false;
legend.Docking = Docking.Right;
legend.Alignment = System.Drawing.StringAlignment.Near;
_chart.Legends.Add(legend);
Series series = new Series("Default");
_chart.Series.Add(series);
ChartArea chartArea = new ChartArea("ChartArea1");
//chartArea.Position.Y = 0;
_chart.ChartAreas.Add(chartArea);
//-- this data would usually be collected from _travelRepository.TravelModesForTheYear
//-- but for speed I've hardcoded as its same for everyone in country
_chart.Series["Default"].Points.DataBindXY(xValues, yValues);
System.Drawing.Color[] colours = new System.Drawing.Color[] { _orange, _yellow, _pink, _red, _green, _purple };
int i = 0;
foreach (System.Web.UI.DataVisualization.Charting.DataPoint point in _chart.Series["Default"].Points)
{
_chart.Series["Default"].Points[i].Color = colours[i];
if(showLegends)
_chart.Series["Default"].Points[i].Label = "#PERCENT";
i++;
}
_chart.Series["Default"].ChartType = SeriesChartType.Pie;
_chart.Series["Default"]["PieLabelStyle"] = showLegends ? "Inside" : "Disabled";
_chart.Series["Default"].LabelForeColor = System.Drawing.Color.White;
_chart.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = false;
_chart.ChartAreas["ChartArea1"].AlignmentStyle = AreaAlignmentStyles.Position;
_chart.BorderlineWidth = 0;
_chart.ChartAreas["ChartArea1"].AxisY.LabelStyle.Enabled = showLegends;
_chart.ChartAreas["ChartArea1"].AxisX.LabelStyle.Enabled = showLegends;
_chart.ChartAreas["ChartArea1"].AlignmentOrientation = AreaAlignmentOrientations.Horizontal;
_chart.Legends[0].Enabled = showLegends;
1 ответ
Вы можете установить Положение и IsDockedInsideChartArea легенды. Также сама ChartArea может быть размещена так, чтобы она не двигалась. Вы должны немного поиграть со значениями, чтобы понять это правильно.
legend.Position.X = 0
legend.Position.Y = 0
legend.IsDockedInsideChartArea = False
area.Position.Height = 94
area.Position.Width = 98
area.Position.Y = 0
area.Position.X = 0