|
分類:[.NET 全般]
VB2015を使用しております。
Chart機能を使っていて、X=0とY=0の位置の背景にに水平および垂直なラインを描画したいと考えています。
プリペイントのところにクロスラインの描画のコードを書くと表示することはできました。
Private Sub Chart1_PrePaint(sender As Object, e As ChartPaintEventArgs) Handles Chart1.PrePaint
Dim g As Graphics = e.ChartGraphics.Graphics
g.DrawLine(ZeroCrossLinePen, )
g.DrawLine(ZeroCrossLinePen, )
End Sub
しかし、チャートのデータ一つの場合には問題ないのですが、
2つ以上表示させた場合、ゼロクロスラインが一回目(以下のch1)に表示したデータラインの上にオーバーレイしてしまいます。
2回目に表示したライン(ch2)はゼロクロスラインの上にうまく描画されます。
With vvv Chart1
.Series.Clear()
.Series.Add("ch1")
With .Series("ch1")
.ChartType = SeriesChartType.Line
.BorderWidth = 2
.Color = Color.Red
.Points.DataBindXY( , )
End With
With .Series("ch2")
.ChartType = SeriesChartType.Line
.BorderWidth = 2
.Color = Color.Blue
.Points.DataBindXY( , )
End With
End With
恐らく、ch1を表示した時にPrePaintが実行され、
更にch2を表示した時にも再度PrePaintが実行されているために、
一回目に表示したラインが下に隠れてしまうのではないかと思います。
一体、どうすれば2本のチャートを表示しても
ゼロクロスラインをうまく表示することができますか?
|