我正在使用 PdfSharp 图表,图表容器有蓝色边框和渐变背景。我寻找设置这些选项的属性,但没有成功。我可以更改图表本身中的多个内容,但不能更改容器。 如何去除边框和背景?
谢谢!
我再次查找图表容器的属性,但没有成功。 这是我到目前为止的代码:
public static Chart ColumnChart(PdfChartValues pdfChartValues)
{
Chart chart = new Chart(ChartType.Column2D);
chart.Font.Size = 7;
chart.PlotArea.FillFormat.Color = XColors.White;
chart.Legend.Docking = DockingType.Bottom;
XSeries xSeries = chart.XValues.AddXSeries();
xSeries.Add(pdfChartValues.XSeriesText);
Series series;
foreach (var item in pdfChartValues.ChartSeriesValues)
{
series = chart.SeriesCollection.AddSeries();
series.Name = item.SeriesName;
series.Add(item.SeriesValues);
series.FillFormat.Color = XColor.FromArgb(item.RedValue, item.GreenValue, item.BlueValue); // Bar color
}
chart.XAxis.HasMajorGridlines = false;
chart.XAxis.MajorTickMark = TickMarkType.None;
chart.XAxis.Title.Caption = pdfChartValues.TitleCaption;
chart.YAxis.MajorTickMark = TickMarkType.None;
chart.YAxis.MajorTick = pdfChartValues.YAxisMajorTick;
chart.YAxis.HasMajorGridlines = true;
chart.YAxis.MajorGridlines.LineFormat.Color = XColors.LightGray;
chart.PlotArea.LineFormat.Color = XColors.LightGray;
chart.PlotArea.LineFormat.Width = 1;
chart.PlotArea.LineFormat.Visible = true;
chart.DataLabel.Type = DataLabelType.Value;
chart.DataLabel.Position = DataLabelPosition.OutsideEnd;
chart.DataLabel.Format = pdfChartValues.SetMoneyFormat ? "$0" : "##,#";
return chart;
}
颜色似乎是硬编码在 ChartFrame.cs 中。
它们还不能使用属性来设置。
获取 PDFsharp 源代码,更改颜色,然后编译。
该边框似乎来自 ChartFrame。正如另一个答案所示,边界似乎是硬编码的。您可以简单地复制并修改 ChartFrame.cs 中的代码(如果您按住 Ctrl 键并单击,VS 将为您反编译)。我认为 Chart 的所有示例代码都显示使用 ChartFrame,它旨在处理多个图表。如果您只想绘制一张图表,请使用 DrawChart() 而不是 Draw() - 它将绘制一张没有边框或背景的图表。
var chartFrame = new ChartFrame(position);
chartFrame.Add(chart);
//chartFrame.Draw(gfx); // draw multiple charts with ugly border
chartFrame.DrawChart(gfx); // draw first chart without border