Как установить фиксированный VisibleRange для YAxis? - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь реализовать 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.

1 Ответ

0 голосов
/ 19 июня 2019

Я неправильно использовал конструктор для DoubleRange, минимум - первый, максимум - второй.

...