MS Chart 轴是通过数据点绘制的

MS Chart axes are drawn trough data points

我正在使用 MS 图表,但不知何故我想不出在 y 轴顶部绘制点的方法。 如下图所示,x = 0 处的点(标签 1998)位于 Y 轴下方。 有人认识到这个问题吗?它与 prepaint 和 postpaint 事件的顺序有关吗?

编辑:使用自定义绘制的点进行测试,直到 y 轴..

Chart 中,所有 DataPoints 超过 GridLines低于 AxesTickMarks.

要在 Axes 上绘制它们,您还需要 所有者绘制 它们在 [=17] 之一=] 事件。

如果您的 ChartTypePointsSplineLine 类型并且您的 MarkerTypeCircleRectangle.

对于大多数其他类型,如 ColumnBar 等,这要困难得多。

这是Points的一个简单例子;选择您更喜欢的尺码..!

private void chart1_PostPaint(object sender, ChartPaintEventArgs e)
{
    if (chart1.Series.Count == 0) return;

    Axis AX = chart1.ChartAreas[0].AxisX;
    Axis AY = chart1.ChartAreas[0].AxisY;
    chart1.ApplyPaletteColors();
    foreach (Series s in chart1.Series)
        foreach (DataPoint dp in s.Points)
        {
           float x = (float )AX.ValueToPixelPosition(dp.XValue);
           float y = (float )AY.ValueToPixelPosition(dp.YValues[0]);
           float w2 = 3.6f;
           using (SolidBrush brush = new SolidBrush(Color.YellowGreen))
                  e.ChartGraphics.Graphics.FillEllipse(brush, 
                                                       x - w2, y - w2, w2 * 2f, w2 * 2f);
        }
}

我已经为 一些 点抑制了自定义绘图。