我正在使用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
这一切都很可爱,我得到漂亮的图表。 唯一的问题是数据点上没有标记。
任何人都可以解释我做错了什么吗?
答案 0 :(得分:3)
我是个白痴。
我在那里放了一个我忘记的测试覆盖,将样式设置为FastLine - 当然这不会创建标记等。
我改变了
.ChartType = SeriesChartType.FastLine
到
.ChartType = SeriesChartType.Line
自然它现在才起作用:)