Я пытаюсь реализовать SciChart без AutoRange на YAxis.Однако кажется, что он полностью игнорирует мой диапазон.
Я пытался установить YAxis для NumericAxisViewModel с фиксированным DoubleRange от -5000 до 5000, но он всегда показывает диапазон от 0 до 10. Хотяпошагово проходя через отладчик, я отчетливо вижу, что NumericAxis принимает мой DoubleRange, но когда график, наконец, рендерится, это только от 0 до 10.Позже этот YAxis добавляется в коллекцию Observable под названием YAxes, которая связана в XAML.
Конструкция оси
this.YAxis = new NumericAxisViewModel
{
AxisAlignment = AxisAlignment.Left,
DrawMajorGridLines = false,
DrawMinorGridLines = false,
DrawMajorBands = false,
VisibleRange = new DoubleRange(5000, -5000),
Visibility = Visibility.Visible,
Id = channel.Id.ToString(),
};
Модель более высокого представления собирает данные
foreach (IDataChannelViewModel d in this.Channels)
{
this.YAxes.Add(d.YAxis);
this.RenderableSeries.Add(d.RenderableSeries);
d.FifoCapacity = this.BufferSize;
}
И XAML связывает его.
<sc:SciChartSurface x:Name="ChartSurface" Grid.Row="2" Grid.ColumnSpan="4" RenderableSeries="{sc:SeriesBinding RenderableSeries}" YAxes="{sc:AxesBinding YAxes}" Visibility="Hidden">
<sc:SciChartSurface.XAxis>
<sc:NumericAxis Name="XAxisControl" VisibleRange="{Binding SelectedRange}" DrawMajorGridLines="True" DrawMinorTicks="True"/>
</sc:SciChartSurface.XAxis>
</sc:SciChartSurface>
<sc:SciChartSurface x:Name="OverviewSurface"
Background="White"
Grid.Row="2"
Grid.ColumnSpan="4"
Loaded="OnOverviewSurfaceLoaded"
RenderableSeries="{Binding ElementName=ChartSurface, Path=RenderableSeries}"
YAxes="{sc:AxesBinding YAxes}">
<sc:SciChartSurface.XAxis>
<sc:NumericAxis AutoRange="Always" DrawMajorGridLines="False" DrawMinorGridLines="False" DrawMajorBands="False" Visibility="Collapsed"/>
</sc:SciChartSurface.XAxis>
</sc:SciChartSurface>
Мне нужно установить фиксированный диапазон от 5000 до -5000.