2014-10-10 2 views
0

Im используя классический график asp.net, чтобы представить некоторые данные, а затем помещать их в PDF. Проблема, которую я, по-видимому, не решаю, - это когда я добавляю легенды в правую сторону графика, который он нажимает. Может ли кто-нибудь понять, почему?Выравнивание диаграммы ASP.NET

enter image description here

 _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; 

ответ

0

Вы можете установить позицию и 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