Hello! I have a real time line chart and a SciChartOverview control and the problem is, as soon as I want to extend the visible range with the overview’s slider, the chart’s x visible range is zoomed to extent. I’d like to have the same functionality as in the ScrollChartUsingOverviewControl example and the real time ticking stock chart. In those examples, if the visible range is extended by the overview scroll bar’s left-hand slider, the max visible range keeps rolling with new data, while the min visible range is extended. I followed those examples, by binding the XVisibleRange to the view model in 2 way mode, but for me the max visible range jumps to the latest data as soon as I move the overview’s slider to the left (stops rolling with new data).
Chart xaml:
<s:SciChartSurface Grid.Row="0" x:Name="Chart" RenderableSeries="{s:SeriesBinding SeriesViewModels}">
<!-- Create an X Axis -->
<s:SciChartSurface.XAxis>
<s:DateTimeAxis AxisTitle="Time" VisibleRange="{Binding XVisibleRange, Mode=TwoWay}" GrowBy="0, 0.1" DrawMinorGridLines="False" DrawMajorBands="True"/>
</s:SciChartSurface.XAxis>
<!-- Create a Y Axis -->
<s:SciChartSurface.YAxis>
<s:NumericAxis AxisTitle="Count" AutoRange="Always" GrowBy="0.1"/>
</s:SciChartSurface.YAxis>
<!-- Specify interactivity modifiers -->
<!-- Add Zooming, Panning behaviours to the chart -->
<s:SciChartSurface.ChartModifier>
<s:ModifierGroup>
<!-- Allow drag to zoom on Left mouse -->
<s:RubberBandXyZoomModifier ExecuteOn="MouseLeftButton"
RubberBandFill="#33FFFFFF" RubberBandStroke="#AAFFFFFF"
RubberBandStrokeDashArray="2 2"/>
<!-- Allow pan on Right mouse drag -->
<s:ZoomPanModifier ExecuteOn="MouseRightButton" ClipModeX="None" />
<!-- Allow Dragging YAxis to Scale -->
<s:YAxisDragModifier DragMode="Scale"/>
<!-- Allow Dragging XAxis to Pan -->
<s:XAxisDragModifier DragMode="Pan"/>
<!-- Allow Mousewheel Zoom -->
<s:MouseWheelZoomModifier/>
<!-- Allow Zoom to Extents on double click -->
<s:ZoomExtentsModifier ExecuteOn="MouseDoubleClick"/>
<!-- Add a Legend to the chart -->
<s:LegendModifier ShowLegend="True" Orientation="Horizontal"
VerticalAlignment="Bottom"
HorizontalAlignment="Center"
LegendPlacement="Inside" />
<!-- Add a RolloverModifier to the chart (shows vertical line tooltips) -->
<s:RolloverModifier ExecuteOn="MouseMove" ShowTooltipOn="MouseHover"/>
</s:ModifierGroup>
</s:SciChartSurface.ChartModifier>
</s:SciChartSurface>
<!-- Add a Scrollbar, and bind to SciChartSurface.XAxis -->
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<!--<ColumnDefinition Width="75"/>-->
</Grid.ColumnDefinitions>
<!--<s:SciChartScrollbar Grid.Column="0" Axis="{Binding ElementName=PhotonChart, Path=XAxis}"/>-->
<s:SciChartOverview Grid.Column="0"
DataSeries="{Binding SeriesViewModels[0].DataSeries, Mode=OneWay}"
ParentSurface="{Binding Source={x:Reference Name=Chart}, Mode=OneWay}"
SelectedRange="{Binding XVisibleRange, Mode=TwoWay}"/>
</Grid>
Am I missing something, or what am I doing wrong?
- Istvan Szarka asked 3 years ago
- last edited 3 years ago
- You must login to post comments
Hi Itsvan,
The Realtime Ticking Stock Chart example uses a technique to achieve what you want which is described in detail in these two articles:
1/ How to Create a Scrolling Strip Chart in SciChart?
2/ How to have a Fixed Scrolling Time-Range on the XAxis that works with Modifiers
It’s this second article which describes how the Realtime Ticking Stock Charts demo works. Check it out and let me know if you have any questions
Best regards,
Andrew
- Andrew Burnett-Thompson answered 3 years ago
- You must login to post comments
Please login first to submit.