【发布时间】:2019-06-20 02:53:38
【问题描述】:
我正在尝试在 YAxis 上实现不带 AutoRange 的 SciChart。但是,它似乎完全忽略了我的范围。
我尝试将我的 YAxis 设置为 NumericAxisViewModel,其 DoubleRange 固定为 -5000 到 5000,但它始终显示 0 到 10 的范围。在单步调试调试器时,我可以清楚地看到 NumericAxis 正在接受我的 DoubleRange但是当图表最终呈现时,它只是 0 到 10。这个 YAxis 稍后会被添加到一个名为 YAxes 的 Observable 集合中,该集合被绑定在 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 的固定范围。
【问题讨论】:
-
好吧,我一发布就看到了我的错误。 DoubleRange 中的最小值和最大值向后。这解决了它。