PDFsharp折线图原点(0,0)坐标获取及图表背景色修改问询
PDFsharp图表开发问题解决方案
1. 获取折线图XY轴交点(0,0)的像素坐标
PDFsharp.Charting原生没有直接暴露(0,0)坐标的公开属性,你可以通过手动计算得到精准坐标,步骤如下:
- 先取
chartFrame.Location的X、Y值作为整个图表容器的左上角基准坐标,记为frameX、frameY - 调用
gfx.MeasureString方法,测量当前Y轴最大刻度文本的宽度(测量时的字体、字号要和你设置的Y轴刻度标签样式完全一致),再加上Y轴刻度线长度、Y轴标题与刻度的间距,得到整个Y轴区域的总宽度yAxisTotalWidth - 同理测量X轴刻度标签的高度、X轴标题高度,加上X轴刻度线长度,得到X轴区域总高度
xAxisTotalHeight - 最终(0,0)点的像素坐标为:
- X坐标 =
frameX + yAxisTotalWidth - Y坐标 =
frameY + chartFrame.Size.Height - xAxisTotalHeight
- X坐标 =
因为Y轴刻度数值变化会直接影响刻度文本宽度,每次Y轴刻度参数更新后重新执行一次测量计算即可。
2. 修改图表背景色
你注释的代码已经接近正确,只需要额外开启填充的可见性即可生效,分两种场景设置:
2.1 修改坐标轴包围的绘图区域背景
// 取消你原有注释,增加Visible属性设置 chart.PlotArea.FillFormat.Color = XColor.FromArgb(255, 255, 255, 255); // 替换为你需要的颜色值 chart.PlotArea.FillFormat.Visible = true;
2.2 修改整个图表容器(包含图例、坐标轴标题区域)的背景
chart.FillFormat.Color = XColors.White; // 替换为你需要的颜色值 chart.FillFormat.Visible = true;
你提到的默认线性蓝色背景是PlotArea的默认渐变填充,按上面的代码设置纯色填充即可覆盖默认样式。
问题中的示意图如下:
内容的提问来源于stack exchange,提问作者Martin86
相关产品推荐
相关产品推荐

