tutorial net microsoft graficos grafico example ejemplos control chart c# winforms charts mschart

net - microsoft chart controls example c#



¿Por qué MSChart no llena todo el área del gráfico? (1)

Estoy trabajando en la creación de un par de gráficos y no puedo entender por qué hay tanto espacio vacío en el lado izquierdo y derecho del gráfico. Tengo un gráfico de Winforms, ChartArea y Series, y siempre hay una buena pulgada en el lado izquierdo y derecho del gráfico que parece ser un espacio desperdiciado. ¿Qué configuración debo cambiar para reducir el tamaño de este espacio vacío? He incluido una captura de pantalla de la tabla con espacio vacío con esta publicación, así como el código que uso para crearla. Gracias por adelantado.

if (listBoxCharts.SelectedItems.Count == 1) { switch (listBoxCharts.SelectedItem.ToString().Trim()) { case "Incomplete Work Orders By Status": ChartArea chartArea = new ChartArea(); Series series = new Series(); Title title = new Title(); chartArea.Area3DStyle.Enable3D = true; chartArea.Area3DStyle.LightStyle = LightStyle.Realistic; chartArea.Area3DStyle.Rotation = 10; chartArea.Area3DStyle.WallWidth = 3; chartArea.BorderColor = Color.Transparent; chartArea.Name = "IncompleteWorkOrdersByStatus_ChartArea"; // Fix this hack ChartContainer.ChartAreas.Clear(); this.ChartContainer.ChartAreas.Add(chartArea); this.ChartContainer.Dock = DockStyle.Fill; this.ChartContainer.Location = new Point(2, 21); this.ChartContainer.Name = "Charts"; this.ChartContainer.PaletteCustomColors = new Color[] { Color.LemonChiffon }; series.ChartArea = "IncompleteWorkOrdersByStatus_ChartArea"; series.ChartType = SeriesChartType.StackedColumn; series.CustomProperties = "DrawingStyle=Cylinder"; series.EmptyPointStyle.BorderDashStyle = ChartDashStyle.NotSet; series.IsXValueIndexed = true; series.Name = "IncompleteWorkOrdersByStatus_Series"; List<WorkOrder> incompleteWorkOrders = woDao.getIncompleteWorkOrders(); var uniqueStatuses = ( from statuses in incompleteWorkOrders select statuses.fkOrderStatus).Distinct().ToList(); int xVal = 1; foreach (var status in uniqueStatuses) { var count = ( from wo in incompleteWorkOrders where wo.fkOrderStatus == status select wo).Count(); DataPoint dPoint = new DataPoint(xVal, count); if (status == null) { dPoint.AxisLabel = "No Status"; } else { dPoint.AxisLabel = status.codedesc; } dPoint.ToolTip = count + " " + dPoint.AxisLabel; series.Points.Add(dPoint); xVal++; } this.ChartContainer.Series.Clear(); this.ChartContainer.Series.Add(series); title.DockedToChartArea = "IncompleteWorkOrdersByStatus_ChartArea"; title.IsDockedInsideChartArea = false; title.Name = "IncompleteWorkOrdersByStatus_Title"; title.Text = "Incomplete Work Orders By Status"; this.ChartContainer.Titles.Clear(); this.ChartContainer.Titles.Add(title); break; default: break; } }


Intenta jugar con la configuración de InnerPlotPosition:

chart1.ChartAreas[0].InnerPlotPosition.X = 0;