将趋势线延伸到登打士图的任一侧
问题描述:
我希望有人能够提供帮助。 我在Visual Studio 2005商业智能项目中使用Dundas Charting for Reporting Services v2.2。 我想要做的是扩大点在该系列的中心,以便跨越整个图表区域从一侧到另一侧。将趋势线延伸到登打士图的任一侧
因此,不需要在系列中心只有一个标记(即使该系列被定义为折线图),我想要一条从图表的一端到另一端的线。
请帮忙。
答
经过大量修补和搜索后,我发现了问题的解决方案。我最终做的是在图的两边指定2个点,然后在它们之间划一条线。这是在高级部分中找到的图表的“后期绘制”事件中完成的。
我还在参数部分添加了一个参数,其中包含趋势线的Y轴常数。
参见下面的代码用于溶液:
// Parameter: chartObj - represents the chart object
// Parameter: sender - the chart object that will be painted
// Parameter: e - arguments that contain the graphics object
// Parameter: codeParams - user defined code parameters
double stripValue = Double.Parse(codeParams["Std"].ToString());
PointF p1 = new PointF();
p1.X = (float)chartObj.ChartAreas["Default"].AxisX.Minimum;
p1.X = (float)chartObj.ChartAreas["Default"].AxisX.ValueToPixelPosition(p1.X);
p1.Y = (float)chartObj.ChartAreas["Default"].AxisY.ValueToPixelPosition(stripValue);
PointF p2 = new PointF();
p2.X = (float)chartObj.ChartAreas["Default"].AxisX.Maximum;
p2.X = (float)chartObj.ChartAreas["Default"].AxisX.ValueToPixelPosition(p2.X);
p2.Y = (float)chartObj.ChartAreas["Default"].AxisY.ValueToPixelPosition(stripValue);
e.ChartGraphics.Graphics.DrawLine(new Pen(Color.FromArgb(255, 0, 0, 0), 1), p1, p2);