|
Class SfChartExt
Inherits SfChart
Public Property CurrentSeries As ChartSeriesBase
End Class
|
|
Class MainWindow
Private Sub btChangePrice_Click(sender As Object, e As RoutedEventArgs) Handles btChangePrice.Click
chart.CurrentSeries = SeriesPrice
BaseTicker.Minutes(100).Price *= 1.2 'increase price for this minute by 20%
End Sub
Private Sub btChangeVolume1_Click(sender As Object, e As RoutedEventArgs) Handles btChangeVolume1.Click
chart.CurrentSeries = SeriesVolume1
BaseTicker.Minutes(100).Volume1 *= 1.2 'increase volume1 for this minute by 20%
End Sub
Private Sub btChangeVolume2_Click(sender As Object, e As RoutedEventArgs) Handles btChangeVolume2.Click
chart.CurrentSeries = SeriesVolume2
BaseTicker.Minutes(100).Volume2 *= 1.2 'increase volume2 for this minute by 20%
End Sub
End Class
|
|
Protected Overrides Sub CalculateVisibleRange(avalableSize As Size)
MyBase.CalculateVisibleRange(avalableSize)
…
'Comparing the registered series.
Dim registeredSeries = CType(Me.GetType().GetProperty("RegisteredSeries", BindingFlags.GetProperty Or BindingFlags.NonPublic Or BindingFlags.Instance).GetValue(Me), ObservableCollection(Of ISupportAxes))
Dim isRegisteredSeriesModified As Boolean
For Each item As ChartSeriesBase In registeredSeries
If (area.CurrentSeries.Equals(item)) Then
isRegisteredSeriesModified = True
End If
Exit For
Next
If Not isRegisteredSeriesModified Then Return
'If primaryAxisVisibleRange = previousXVisibleRange Then Return
ZoomY(primaryAxisVisibleRange, area)
…
End Sub
|
|
Private Sub btChangePrice_Click(sender As Object, e As RoutedEventArgs) Handles btChangePrice.Click
chart.CurrentSeriesIndex = 0
BaseTicker.Minutes(100).Price *= 1.2 'increase price for this minute by 20%
End Sub
Private Sub btChangeVolume1_Click(sender As Object, e As RoutedEventArgs) Handles btChangeVolume1.Click
chart.CurrentSeriesIndex = 1
BaseTicker.Minutes(100).Volume1 *= 1.2 'increase volume1 for this minute by 20%
End Sub
Private Sub btChangeVolume2_Click(sender As Object, e As RoutedEventArgs) Handles btChangeVolume2.Click
chart.CurrentSeriesIndex = 2
BaseTicker.Minutes(100).Volume2 *= 1.2 'increase volume2 for this minute by 20%
End Sub
..
Class SfChartExt
Inherits SfChart
Public Property CurrentSeriesIndex As Integer
End Class |
|
'index as 0
Private _Price As Double
Public Property Price As Double
..
'index as 1
Private _Volume1 As Integer
Public Property Volume1 As Integer
..
'index as 2
Private _Volume2 As Integer
Public Property Volume2 As Integer
Get
Return _Volume2 |
|
Protected Overrides Sub CalculateVisibleRange(avalableSize As Size)
MyBase.CalculateVisibleRange(avalableSize)
…
Dim currentSeries = CType(area.CurrentSeries, CartesianSeries)
If area.CurrentSeries IsNot Nothing Then
Dim isRegisteredSeriesModified As Boolean = False
If (currentSeries.YAxis.Equals(Me)) Then
isRegisteredSeriesModified = True
End If
If Not isRegisteredSeriesModified Then Return
End If
…
End Sub
|
|
Class SfChartExt
Inherits SfChart
Public Property CurrentSeries As ChartSeriesBase
Friend Sub RefreshCurrentSeries()
Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, Sub() NullCurrentSeries())
End Sub
Private Sub NullCurrentSeries()
CurrentSeries = Nothing
End Sub
End Class
Class FastSteplineBitmapSeriesExt
Inherits FastStepLineBitmapSeries
Protected Overrides Sub SetIndividualPoint(index As Integer, obj As Object, replace As Boolean)
MyBase.SetIndividualPoint(index, obj, replace)
Dim sfChartExt = CType(Me.Area, SfChartExt)
sfChartExt.CurrentSeries = Me
End Sub
End Class
|