Microsoft .Net Chart Control未显示标记

时间:2009-11-13 15:50:14

标签: vb.net charts graph

我正在使用Microsoft Chart Controls for Microsoft .NET Framework 3.5,并且无法在图片上显示数据标记。

我在运行时生成图表,所以不能只使用设计器。

Sub New()
    MainChart = New Chart
    MainChart.Size = New Drawing.Size(500, 200)

    MainArea = New ChartArea()
    With MainArea
        .Name = "Default"
        .AxisX.LabelStyle.Format = "MMM"
        .AxisX.MajorGrid.Enabled = False
        .AxisX.IsLabelAutoFit = False

        .AxisY.MajorGrid.LineColor = Drawing.Color.Gainsboro
        .AxisY.IsLabelAutoFit = True
        .AxisY.Minimum = 0
        .AxisY.Maximum = 50
    End With
    MainChart.ChartAreas.Add(MainArea)


    MainSeries = New Series()
    With MainSeries
        .ChartArea = "Default"
        .Name = "MainSeries"
        .ChartType = SeriesChartType.Line ''# .FastLine would hide markers...
        .IsXValueIndexed = True
        .XValueType = ChartValueType.Date
        .MarkerSize = 9
        .MarkerStyle = MarkerStyle.Diamond
        .ToolTip = "#VALX: #VAL"
    End With
    MainChart.Series.Add(MainSeries)

End Sub

然后我使用

添加一堆数据点
Public Sub AddDataPoint(ByVal X As Date, ByVal Y As Double)
    MainSeries.Points.AddXY(X, Y)
End Sub

之后,我可以将图表保存为图像

Public Sub SaveImage(ByVal Filename As String)
   MainChart.SaveImage(Filename, ChartImageFormat.Png)
End Sub

这一切都很可爱,我得到漂亮的图表。 唯一的问题是数据点上没有标记。

任何人都可以解释我做错了什么吗?

1 个答案:

答案 0 :(得分:3)

我是个白痴。

我在那里放了一个我忘记的测试覆盖,将样式设置为FastLine - 当然这不会创建标记等。

我改变了

.ChartType = SeriesChartType.FastLine

.ChartType = SeriesChartType.Line

自然它现在才起作用:)