Mouse events
Imports Oxyplot.Axes
Imports Oxyplot.Series
Public Class Form
Private WithEvents Model As PlotModel
Private lineSeries As LineSeries
Private linearAxisX As LinearAxis
Private linearAxisY As LinearAxis
Private Sub Form_Load(sender As Object, e As EventArgs) Handles Me.Load
Model = New PlotModel With {
.Subtitle = "Left click and drag",
.Title = "Mouse events",
.Background = OxyColors.White
}
linearAxisX = New LinearAxis With {
.Maximum = 1,
.Minimum = -1,
.Position = AxisPosition.Bottom
}
Model.Axes.Add(linearAxisX)
linearAxisY = New LinearAxis With {
.Maximum = 1,
.Minimum = -1
}
Model.Axes.Add(linearAxisY)
PlotView.Model = Model
lineSeries = Nothing
End Sub
Private Sub Model_MouseDown(sender As Object, e As OxyMouseDownEventArgs) Handles Model.MouseDown
If e.ChangedButton = OxyMouseButton.Left Then
lineSeries = New LineSeries With {
.Title = String.Format("LineSeries {0}", Model.Series.Count + 1),
.MarkerType = MarkerType.None,
.StrokeThickness = 2
}
lineSeries.Points.Add(linearAxisX.InverseTransform(e.Position.X, e.Position.Y, linearAxisY))
Model.Series.Add(lineSeries)
Model.InvalidatePlot(False)
e.Handled = True
End If
End Sub
Private Sub Model_MouseMove(sender As Object, e As OxyMouseEventArgs) Handles Model.MouseMove
If Not IsNothing(lineSeries) Then
lineSeries.Points.Add(linearAxisX.InverseTransform(e.Position.X, e.Position.Y, linearAxisY))
Model.InvalidatePlot(False)
e.Handled = True
End If
End Sub
Private Sub Model_MouseUp(sender As Object, e As OxyMouseEventArgs) Handles Model.MouseUp
If Not IsNothing(lineSeries) Then
lineSeries = Nothing
e.Handled = True
End If
End Sub
End Class

0 件のコメント:
コメントを投稿